¿Con qué tipos de exploits debo protegerme en PHP?

5

Recientemente aprendí que, aparentemente, es común que las personas intenten inyecciones de SQL utilizando el referente HTTP en PHP. ¿Contra qué otros insumos debo protegerme? Actualmente estoy "limpiando" $ _GET [] y $ _POST [] entrantes, y ahora el referente del servidor. También estoy eliminando HTML de cosas como nombres de usuarios y, por supuesto, antes de hacer algo, estoy eliminando UTF8 no válido. (Actualmente no estoy tratando con UTF7).

    
pregunta Frank E 08.01.2013 - 15:53
fuente

2 respuestas

5

Existe una gran cantidad de vulnerabilidades y ataques que afectan la seguridad de su aplicación. Puede comenzar con una lista de las más comunes y críticas y OWASP Top 10 es el recurso más popular. que contiene información detallada y excelentes hojas de trucos para un inicio rápido.

Las vulnerabilidades provienen de prácticas de desarrollo inseguras, así que aquí está la Guía de referencia rápida sobre prácticas de codificación seguras de OWASP en un Formato de listas de verificación. La implementación de estas prácticas mitigará las vulnerabilidades de software más comunes.

Sus preguntas son acerca de la validación de entrada, que es solo una parte del problema que está tratando de resolver. La protección de su aplicación web no es una ciencia exacta en la que se pueda definir e implementar una lista completa de todos los posibles problemas y soluciones.

Pero aún así, la validación de entrada es uno de los controles técnicos más efectivos para la seguridad de la aplicación. Puede mitigar numerosas vulnerabilidades, incluidas las secuencias de comandos entre sitios, varias formas de inyección y algunos desbordamientos de búfer.

Variables utilizadas para adquirir el usuario en PHP:

  • $_GET
  • $HTTP_GET_VARS
  • $_POST
  • $HTTP_POST_VARS
  • $_COOKIE
  • $HTTP_COOKIE_VARS
  • $_REQUEST
  • $_FILES
  • $HTTP_POST_FILES
  • $_SERVER[‘REQUEST_METHOD’]
  • $_SERVER[‘QUERY_STRING’]
  • $_SERVER[‘REQUEST_URI’]
  • $_SERVER[‘HTTP_ACCEPT’]
  • $_SERVER[‘HTTP_ACCEPT_CHARSET’]
  • $_SERVER[‘HTTP_ACCEPT_ENCODING’]
  • $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]
  • $_SERVER[‘HTTP_CONNECTION’]
  • $_SERVER[‘HTTP_HOST’]
  • $_SERVER[‘HTTP_REFERER’]
  • $_SERVER[‘HTTP_USER_AGENT’]
  • $_SERVER[‘PHP_SELF’]
respondido por el Cristian Dobre 08.01.2013 - 18:36
fuente
0
    1. Lo primero y más importante es la Ejecución remota de código

Esto puede estar en cualquier parte de su código o incluso en una vulnerabilidad de PHP en su núcleo. El atacante puede encuentre una llamada rpc o a través de globales y ejecute cualquier código en su máquina remota a nivel de máquina

    1. Secuencias de comandos entre sitios (XSS)

De esta manera, el atacante puede inyectar código javascript en su sitio y permitirle recuperar cookies y otra información útil que podría comprometer su sitio muy fácilmente. Mira aquí para ver qué tan común es un ataque.

    1. Otra información

Debe configurar su aplicación de manera que cuando ocurra un problema no se proporcione información al atacante. La enumeración del nombre de usuario es tal, lo que significa que un servicio backend le brinda al atacante una respuesta verdadera o falsa, ya que la contraseña o el nombre de usuario no existen, lo que lo hace vulnerable a los ataques de fuerza bruta

    1. DoS vulnerabilidades

Muchas veces su aplicación puede fallar debido a algún fragmento de código que permite tantas solicitudes del usuario como desee. Otras veces, este es el problema de algún código defectuoso que requiere mucho más tiempo para ejecutarse de lo que debería. Esta última es una vulnerabilidad muy común que la mayoría de las veces requiere una actualización para funcionar.

Espero que esto ayude.

    
respondido por el Athanasios Kataras 08.01.2013 - 16:14
fuente

Lea otras preguntas en las etiquetas