Bienvenido A La Comunidad De Juegos

Seguridad

Bueno, esta seccion es dedicada para la seguridad.

Ustedes se prguntaran que tipo de seguridad, claro por eso esta seccion la dividiremos en varias partes, asi buscas de manera mas rapida lo que deseas.

Seccion 1: Seguridad para un server de mu online.

a)- Seguridad Para tu web
b)- Firewall
c)- Baneo automatico a los que dupean
d)- Solucion definitiva para que no se te caiga el server

>a<)- Seguridad para tu web:

Bueno mas alla de que las web's de ahora (web mu) son pre-diseñadas (ya estan hechas) poseen un sierto grado de seguridad, pero bueno no lo suficiente, leeiendo en foros, internet, encontre esto una soluccion a los tan nombrados (Inyeccion SQL) Bueno antes que nada muchos de ustedes no tienen ni idea  de lo que les estoy diciendo =) bueno ahora entro en detalles.. 

Bueno algunos habran escuchado hablar del famoso SQL Injections , y mas de uno se pregunta que quiere decir eso (?)
Bien comenzare con un poco de información la inyeccion de sql son codigo mejor dicho son SCRIPS que ultilizan los "hacker" si podemos llamarlo asi para modificar , extraer o manipular tablas en nuestra base de datos.
Como lo hacen (?) , muy facil si ustedes se ponen a pensar cuando creamos una cuenta por pagina web , nuestros datos viajan en .php atraves de variables hacia la .DB ( data base = base de datos )esa es la coneccion que tiene la pagina web a nuestra base de datos que por defecto todos llaman MuOnline.
Los inyectores se ejecutan de esa manera en vez de enviar los datos de la cuenta envian scrips.

mssql_connect(..);
mssql_select_db(..);
$account = $_POST['acc']; // account field
$password = $_POST['pass']; // password field
// other vars bla bla..
// Now here is the base query
// First we check if this acc exists
$query = mssql_query("select count(*) from [memb_info] where [memb___id]='$account'"); // This is where the 'hacker" (lame kiddie) will hit you
//other code does not matter
?>

Ese es un ejemplo claro de envio de datos

Claro yo explico pero sino tenes una basica idea de lo que estoy hablando no sigas leyendo.
En la primera linea se conecta a la base de datos y en la segunda linea seleciona
por defecto tenemos preestablecidas las variables $cuenta $ password.

Bien una solucion a esto es :

Injections can be done in $_POST, $_GET or $_REQUEST, $_COOKIE or every value that the user has access to, so i suggest you addslashes() to all (addslashes changes ' to ' and " to " - this way user cannot end ur current query)

Es decir retringir comandos tipicos para el acceso del sql , afortunadamente los que inyectan en nuestras web usan unos codigos prediseñados los cuales necesitan utilizar simbolos como estos !"#$%&/()=? , entonces nosotros podemos restingir esos simbolos utilizando el INJECCION SQL y una FUNCION llamada CHEK_SQL que viene en todas las web-mu. Esos dos archivos se encargan de verificar que si alguien quiere introducir algun comando "malicioso" se lo cancelen.
A nosotros mucho no nos afecta , solo que en la creacion de cuentas y utilizacion de nuestras herramientas ( cambiar password , agregar stats , etc )los persojes que tengan en su nombre alguno de estos simbolos seran rechazados.

Bueno eso fue una breve explicacion acerca del SQL INJECTIONS y la posible solucion.
Espero que les halla sido util y sigan investigando saludos a todos asd*.

PD: Tambien existen hoy en dia los denominados PAQUETES , los paquetes ingresan como datos en el server , llegan al SQL y extraer informacion por los cuales estan programados.
Antes de enviar un paquete nuestro "hacker" se encarga de programarlo y darle una mision estos paquetes ingresan y extraen ( claves , numeros , celdas ) y regresar a su punto de origen.
Algunos CS detectan y sale una leyenda que dice INVALID PAQUET y un IP , lo que les puedo decir es que no vallan corriendo y le bloquen el ip , ese seria un error de NOVATO es hora de aplicar nuestros conocimientos ( mejor dicho los mios ) que haremos una vez que tenemos el ip de nuestro enemigo , ingresamos a SQL y buscamos la tabla donde quedan registrados todos los ips de quienes entran a nuestro server, luego lo comparamos con el que tiene la cuentas y comenzamos una tarea de "DETECTIVE" buscamos su cuenta , vemos su mail , tratemos de acercarnos pero no como ADMIN sino como usuario , averiguen datos de el , pidan ayuda a gente de confianza nose inventenlo ustedes.
Cuando tienen un usuario asi en nuestro server es muy dificil de defenderse asique traten de hacer las cosas por las buenas.


>b<)- Firewall, bueno muchos de ustedes estan en creacion de un server de mu y no tienen idea de como configurar el firewall.. bueno yo les voy a explicar, lo que lograremos ahora es hacer el server No-edit (ineditable)

Ingresamos a nuestro firewall de windows

Vamos a inicio=> Connfiguracion => Panel de Control => Centro de Seguridad

Luego nos desplazamos hacia abajo y hacemos click en donde dice

Firewall de Windows

Si esta desactiva , lo activamos

Vamos a la solapa del medio EXCEPCIONES

y solamente dejamos tildado al GAMASERVER Y CS

(tambien dejamos abierto el port 80 si es que tiene una web )

Los demas programas le sacamos el tilde. [ Principalmente a los dataserver y al joinServer]

En el caso que necesiten tener el port del SQL abierto para utilizar el editor
en otra pc , hacemos click sobre el nombre que le pusieron a ese port y ponen modificar y luego en cambiar
ambito.
Finalmente seleccionan la opcion de lista personalizada y ponen el ip de quien ustedes consideren de confianza para que se conecte

Con esta opcion nos aseguramos que solo puedan entrar a ese puerto aquellos ip a los que nosotros le dimos autoridad.

Recuerden que una vez que ponen el ip deben poner tambien la mascara de subred
por ejemplo 201.220.12.14/255.255.255.0 y si quieren agregar dos deben separarlos por una coma ","

>c<)- Baneo automatico a los que dupean

Bueno, esto es muy sencillo, y muchos de ustedes se preguntan..  en mi server dupean que hago!!, bueno la soluccion es buena para no estar pasando cada 10 min en dupefinder, ademas recuerden que si dupean 
una kundum (por ejemplo) no saldra! saldra luego el item y si por ejemplo el item fue regalado a otra persona (inoscente).. se prodece una injusticia, bueno esto funciona realizen los pasos como lo explico

Este codigo es para que las personas que dupean en sus server, sean baneadas automaticamente despues de desconectarse del servidor, asi seran castigados todos los jugadores ilegales del server.
Aquí estan los pasos

1- Vas a inicio/programas/microsof sql server/analizador de consultas
2- Se abrira un recuado que dice conectar a sql server, ahi tiene que salir tine que salir el nombre dle servidor, sino sale lo agregas, colocas aceptar
3-Copias este texto

use muonline
if exists(select * from dbo.sysobjects where type='p' and name='WZ_GetItemSerial')
drop procedure WZ_GetItemSerial
go
CREATE procedure WZ_GetItemSerial
as
BEGIN
DECLARE @ItemSerial int
set nocount on
begin transaction
update GameServerInfo set @ItemSerial = ItemCount = (case when ItemCount < 0x7effffff then ItemCount+1
else 1
end )
if(@@error <> 0)
begin
rollback transaction
select-1
end
else
begin
commit transaction
select @ItemSerial
end
END

GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[trg_CheckSameID]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[trg_CheckSameID]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AllItemsLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[AllItemsLog]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CopyLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[CopyLog]
GO

CREATE TABLE [dbo].[AllItemsLog] (
[items_id] [int] IDENTITY (1, 1) NOT NULL ,
[items_type] [binary] (1) NOT NULL ,
[items_serial] [binary] (4) NOT NULL ,
[items_acid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[CopyLog] (
[copy_id] [int] IDENTITY (1, 1) NOT NULL ,
[copy_acid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[copy_whdata] [binary] (1200) NOT NULL ,
[copy_date] [datetime] NOT NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[AllItemsLog] ADD
CONSTRAINT [DF_CT_ITEM_item] DEFAULT (0) FOR [items_type],
CONSTRAINT [DF_CT_ITEM_itemid] DEFAULT (0) FOR [items_serial],
CONSTRAINT [DF_CT_ITEM_itemrole] DEFAULT ('') FOR [items_acid]
GO

CREATE INDEX [IX_CT_ITEM] ON [dbo].[AllItemsLog]([items_type], [items_serial]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[CopyLog] ADD
CONSTRAINT [DF_CopyLog_copy_date] DEFAULT (getdate()) FOR [copy_date]
GO


SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE TRIGGER [dbo].[trg_CheckSameID] ON [dbo].[character]
FOR UPDATE
AS
BEGIN
IF UPDATE(inventory)
BEGIN
SET NOCOUNT ON
DECLARE
@wh_acid varchar(10),
@wh_data binary(1200),
@wh_type binary(1),
@wh_serial binary(4),

@cr_user varchar(10),
@cr_acid varchar(10),
@cr_data binary(760),
@cr_type binary(1),
@cr_serial binary(4),

@al_acid varchar(10),
@j int,
@k int,
@find bit

SELECT @cr_acid=i.accountid,
@cr_data=i.inventory
FROM inserted i

SET @j=0
SET @find=0

WHILE @j<76 AND @cr_data IS NOT NULL
BEGIN
SET @cr_type=SUBSTRING(@cr_data,@j*10+1,1)
SET @cr_serial=SUBSTRING(@cr_data,@j*10+4,4)
IF @cr_type<>0xFF AND @cr_serial<>0x00000000
BEGIN
SELECT @al_acid=items_acid FROM allitemslog WHERE items_type=@cr_type AND items_serial=@cr_serial


IF @al_acid IS NULL
INSERT INTO allitemslog (items_type,items_serial,items_acid) VALUES (@cr_type,@cr_serial,@cr_acid)
ELSE
BEGIN
UPDATE allitemslog SET items_acid=@cr_acid WHERE items_type=@cr_type AND items_serial=@cr_serial


SELECT @wh_data=items FROM warehouse WHERE accountid=@al_acid

SET @k=0
WHILE @k<120 AND @wh_data IS NOT NULL
BEGIN
SET @wh_type=SUBSTRING(@wh_data,@k*10+1,1)
SET @wh_serial=SUBSTRING(@wh_data,@k*10+4,4)
IF @wh_type=@cr_type AND @wh_serial=@cr_serial
SET @find=1
SET @k=@k+1
END
END
END
SET @j=@j+1
END
IF @find=1
BEGIN
INSERT INTO copylog (copy_whdata,copy_acid,copy_date) VALUES (@wh_data,@al_acid,getdate())
-- this is wer u can add more punishment like ban or lock characters
UPDATE Character SET CtlCode=1 WHERE accountid=@al_acid
END
SET NOCOUNT OFF
END
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
DECLARE @al_acid char(50)
set @al_acid = 'ASUS'
UPDATE Character SET CtlCode=1 WHERE accountid=@al_acid
go
select * from AllItemsLog
select * from CopyLog

4- Precionas F5 y ctrl N
5- Se abrira otro recuadro, en este recuadro copias esto otro:

use MuOnline
select * from AllItemsLog
select * from CopyLog

6- Presionas F5 y crtl N
7- Se abrira otro recuadro y copias esto otro:

use MuOnline
select * from CopyLog

8- Presionas F5 y estas listo, luego cierra las ventatas y guarda los cambios, te guardara unos block de notas, guardalos en donde tu quieras.


>d<)- Bueno esta es la soluccion definitiva para que no te tiren el server.. vamos a una  breve explicacion para que lo entiendan..

Muchos de ustedes dicen aveces "por que me tiran el server, tengo blockeado todo" bueno existe una herramienta (si blockeas bien todo no deberia suceder, a que te tiren el server pero por las dudas).. llamada D.D.O.S Monitor que es para blockear los ataques.. bueno ahora, la respuesta mas esperada Por que me tiran el server?..

Bueno puede ser por infinidad de cosas desde errores internos del C.S o del G.S que vos crees que te lo tiran hasta inyecciones sql.. pero gracias a dios no todos los jugadores de mu online leen una guia para crear una inyeccion antes de entrar =) bueno me fui al carajo con la explicacion..

Generalmente se usa el Turbinas By Volks o Ataques D.D.o.S.. bueno lo que hace esto es sobrecargar las conecciones es decir envia mas conecciones al gameserver haciendo que este se caiga y conecte cada milesima de segundo claro! nunca podremos jugar pues no entra en una milesima el juego xD.. espero que les alla servido

El D.D.O.S Monitor lo puden descargar del google...


-->>Bueno ahora les dejare seguridad para su pc (un par de cositas) recuerden que ningun antivirus es dios (tenganlo en cuenta).. les dejo tambien un par de recomendaciones<<--


1)- Fundamental tener un buen antivirus instalado en su pc, todos son basicamente lo mismo.. :

Kaspersky 2010
Eset smart segurity (ex nod 32 cambio de nombre)
Avast !

Esos personalmente son en los que confio bueno tambien hay otros ya saben.. como AVG es un buen antivirus..


Spybot search and destroy (utilidad que escanea los "robots de sistema") bueno esta utilidad busca en el registro virus, trojans.. una muy buena utilidad la pueden descargar de cualquier lado (es gratuito) sin licencia ni nada..

Espero que les sea util.

NOTA: Recomendacion: escanear por lo menos 1 vez a la semana ya que los virus que no los encuentra pueden estar en el sistema..

Esto fue todo por ahora en la seccion seguridad que tengan felices fiestas (si estas creando un servidor de mu, te recomiendo que veas mi seccion de Tutoriales y Utilidades para Server de mu.




Hoy habia 2 visitantes (12 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis