2011-08-04 7 views
5

Un poco de historia. Dirijo el sitio web para una organización sin fines de lucro. Ejecuté un verificador de enlaces en el sitio después de ver un enlace inactivo y encontré un par más. Entonces, implementé una página 404 personalizada para registrar cualquier enlace fallido. Esto me permite arreglar mis enlaces rotos y alertar a los demás que tienen un enlace con nosotros y que sus enlaces están rotos.Mejor enfoque para manejar el intento de hackear un sitio web

Se lleva a un interesante hallazgo bastante rápido: son asombrosamente una gran cantidad de intentos de burlar la seguridad y explotar vulnerabilidades en paquetes de software estándar que se encuentran comúnmente en los sitios, como phpMyAdmin, foros, etc.

que registran la Las direcciones IP de los delincuentes, y casi en su totalidad descubren que no son de los EE. UU., Y nuestra organización se centra estrictamente en una pequeña región de los EE. UU., Así que pensé en prohibirlos, a través de PHP de una manera como: cargar una lista de delincuentes en el archivo de encabezado, que es utilizado por todas las páginas, y simplemente mueren con un mensaje si pertenecen a la lista.

¿Es este un buen enfoque? ¿Hay algo mejor? Lo que me preocupa, es que va a encontrar una vulnerabilidad y obtener acceso.

+2

Si solo necesita prohibir todas las direcciones IP que generan errores 404, consulte el software fail2ban – zerkms

+0

Eso es horrible. Entonces, si escribe mal una URL, ¿se lo prohiben? ¿O te entendí mal? –

+0

Sí, lo malinterpretas. Solo se prohíben los intentos de hackear – steveo225

Respuesta

4

Su método de poner en la lista negra IPs fuera de los EE. UU. Será un poco efectivo durante un corto tiempo, pero realmente será una batalla perdida en el largo plazo. Si puede excluir direcciones IP fuera de los EE. UU. Sin afectar su base de usuarios, puede utilizar un servicio como Maxmind GeoIP para identificar el país en código PHP y denegar el acceso a las personas externas.

Cargando estos en una lista o matriz en el archivo de cabecera es probable que resulte difícil de manejar después de un tiempo y posiblemente afecte el rendimiento. Sería mejor que almacenaras la lista de prohibiciones en una base de datos y verificaras las direcciones IP al establecer una sesión en tu sitio.

Sin embargo, el curso de acción más importante es asegurarse siempre de que los paquetes de software de terceros, como foros, blogs, wikis, etc., estén actualizados con parches de seguridad. Los exploits para aplicaciones web comunes son muy conocidos y ampliamente publicitados, por lo que es crucial mantenerlos actualizados.

Addendum Haga el hábito de leer http://www.exploit-db.com/ de vez en cuando para estar al tanto de nuevas hazañas.

+0

Honestamente, creo que lo que más ha ayudado a mantener a los delincuentes fuera es que el sitio solo usa software interno, por lo que mantenerse al día es discutible. Honestamente, los IP bloqueados probablemente terminarían en una base de datos en lugar de aparecer en una lista eventualmente, en este momento la lista es bastante pequeña. – steveo225

1

Para clavar IPs de los EE. UU., MaxMind GeoLite Country debería hacer.
Es gratis y GPL y muy bien escondido en su sitio.

mayoría IP localizadores por ahí utilizar este libre de DB,
y en mi experiencia se trata siempre del país correcto.

(el que vale la pena la compra de ellos es el base de datos GeoIP City, ese tipo de datos es más mutable y GeoLite City lo hace bien menos del 70% de las veces - con algunos errores bastante espectacular)

GeoLite viene en base de datos y sabor binario.
El binario tiene una biblioteca php que realiza búsquedas indexadas.

no me prohibirlos directamente, de todos modos.

¿Por qué? Muchas razones.
Una es: las personas en algún momento viajan al exterior y es posible que quieran consultar su sitio durante los días festivos.

Si yo fuera usted, me gustaría poner un Reconocer texto en la página, y si que lo pasen, a establecer un secreto de galletas al día.
Algo así como:

hash('md5',$salt.date('Ymd')); 

(MD5 no se debe utilizar para que, de todos modos - calc el hash utilizando un SHA-1 y almacenar en caché para el día)

podría configurar el cookie diaria secreta a los IP que pasan la prueba GeoLite, también.
Para que no tenga que buscarlo en cada visita.

Cuestiones relacionadas