2009-08-25 20 views

Respuesta

5

This pregunta es bien respondió-y cubre los ataques de inyección de MySQL (una de las preocupaciones más comunes. This cuestión también está bien documentada y cubre XSS (Cross Site Scripting) ataques así.

por último, aprender acerca de PHP.INI y cómo configurarlo y lo que en realidad es abierta/cerrada y de encendido/apagado. Un buen anfitrión, por ejemplo, nunca encienda el registro de globales, pero al menos debe saber lo que es y por qué verificarlo. PHP Security tiene recursos en esa y muchas otras preocupaciones de seguridad PHP.

1

PHP podría no ser el mejor comienzo. Especialmente si estás ampliando a mano tu propio código. No tiene nada que ver con problemas de seguridad. (FD: Deseo PHP se iría para una variedad de razones.)

Pero algunas reglas generales:

  • no confían en todo lo que viene del exterior. Siempre suponga que el usuario es un imbécil tratando de romper su aplicación. La mayoría de ellos no lo serán, por supuesto, pero eventualmente habrá uno que sí lo sea. El hecho de que hayas otorgado al navegador un <select> que contenga a, byc no significa que recuperarás uno de esos. Javascript no es una garantía de nada. Los consultantes pueden ser fácilmente falsificados. Los datos POST pueden ser fácilmente falsificados. Los cuadros de texto pueden contener cualquier carácter, no solo los que espera.
  • No copie ni pegue el código de otros en producción si no está seguro de cómo funciona. No tienes idea de cuánto ojo tiene el autor para la seguridad. En mi experiencia, PHP copypasta en particular parece ser menos confiable pero con mayor frecuencia se reutiliza ciegamente.
  • No confíes en ti mismo para realizar el mismo ritual en docenas de lugares diferentes. Sí, mysql_real_escape_string() arreglará la inyección de SQL, pero luego debe recordar usarlo en todas partes. Esto crea muchos lugares donde puedes cometer un error y olvidar tu ritual de escape. Utilice las declaraciones preparadas en su lugar, y el problema desaparece por completo. Otro ejemplo: los pilones (un marco de Python) Plataformas sus plantillas por lo que cualquier variable es HTML-escapó a menos que pedir explícitamente lo contrario. XSS ya no es un problema, y ​​nunca tiene que preocuparse de escapar manualmente todo lo imprimo.
1

Si usted tiene algún tiempo, se puede echar un vistazo a las diapositivas utilizadas por Stefan Esser durante su conference at the Dutch PHP Conference hace unos meses, que era el título "curso acelerado Seguridad en PHP para principiantes".

Hay un par de PDF:

Eso podría ser útil.

Entonces, no dude en buscar un poco de información no específica de PHP: algunos problemas de seguridad (como XSS, SQL Injections, CSRF, ...) no son específicos de PHP: solo los medios técnicos para evitar ellos son específicos; por lo tanto, puede encontrar mucha información en sitios como Wikipedia, o OWASP website

Cuestiones relacionadas