¿Cómo hacer Ajax de forma segura?

15

Esta pregunta está inspirada en esta pregunta de seguridad enlace

  1. ¿Cuáles son las amenazas al usar Ajax? (Tenga en cuenta que estoy hablando de amenazas de seguridad, no de inconvenientes)
  2. ¿Cómo hago Ajax de forma segura? (Por favor, proporcione ejemplos, preferiblemente ejemplos en PHP, ya que estoy usando el marco CakePHP ).
pregunta Kim Stacks 10.02.2011 - 20:06
fuente

2 respuestas

16

Ajax está simplemente transfiriendo datos a través de HTTP, no es mágico, por lo que lo protege exactamente de la misma manera que lo hace con sus páginas web normales -

  • comprobar la autenticación y autorización
  • Cifre o agregue controles hash con sal a los datos exportados al navegador para su reenvío
  • tratar cualquier dato recibido en la solicitud como potencialmente peligroso
  • use HTTPS donde sea apropiado
  • transforme los datos dejando a su PHP utilizando el método correcto para su ejecución (htmlentities, mysql_real_escape_string
  • transforme los datos que ingresan a su script utilizando el método correcto según su origen (por ejemplo, json_decode)
respondido por el symcbean 11.02.2011 - 14:39
fuente
6

Las amenazas con AJAX son las mismas que se enfrentan con la solicitud web normal: XSS, Inyección de SQL, etc. Una cosa a tener en cuenta es que con AJAX, si carga datos de una fuente no confiable (por ejemplo, algún servicio web), También debería validar esos datos en el cliente, no solo en el servidor, o de lo contrario alguien podría inyectar javascript y otras cosas desagradables.

Use los mismos métodos para asegurar la solicitud que usaría normalmente, ya que AJAX es solo una solicitud HTTP. Pero tenga en cuenta que además de verificar las cosas "normales" (verifique los privilegios de los usuarios, desinfecte los datos, etc.), también verifique si realmente hizo la solicitud o si fue engañado (por ejemplo, un enlace en otra página). Para hacer eso, incluya un token CSRF en cada solicitud de AJAX y valídelo en el lado del servidor (consulte ¿Cuál es la forma correcta de implementar tokens de formulario anti-CSRF? ). Aunque se recomienda que se use un token CSRF incluso en las solicitudes normales.

Otra cosa es que, dependiendo de lo que haga con el lado del cliente, también desinfecte los datos allí. De lo contrario, un atacante podría inyectar un código dañino en la página. Esto es especialmente importante si obtiene datos de un tercero, pero es mejor hacerlo para todas las entradas.

    
respondido por el Andreas Arnold 18.02.2011 - 11:44
fuente

Lea otras preguntas en las etiquetas