¿HTTP POST es más seguro que HTTP GET para AJAX?

1

Dejando de lado todas las consideraciones de HTTPS / SSL, etc., si mi usuario completa un formulario y lo envío por AJAX, parece que POST & Los GET son igualmente interceptables, aunque GET es un poco más transparente teensy .

¿Hay alguna razón técnica sólida para preferir POST?

    
pregunta Mawg 07.07.2016 - 08:56
fuente

3 respuestas

6

Debería usar POST para cualquier acción que cambie de estado. Si guarda el contenido del formulario o lo utiliza para enviar un correo electrónico, debe usar un POST.

Hay varias razones por las que esto es más seguro:

  • CSRF es más fácil con las solicitudes GET que con las solicitudes POST. Con las solicitudes GET puedes simplemente enviar un enlace a alguien. Con una solicitud POST, un atacante necesita tener una página HTML diseñada. Cuando su marco tiene protección CSRF, esto normalmente solo está activo en las solicitudes POST.
  • La política del navegador es diferente para las solicitudes POST. Por ejemplo, aparece un cuadro de diálogo de confirmación si intenta volver a cargar la página. Un ejemplo de dónde se aplica esto a la seguridad es cookies del mismo sitio . Con la configuración "laxa", las solicitudes POST se bloquean en origen cruzado y las solicitudes GET no lo están.

Consulte también esta respuesta .

    
respondido por el Sjoerd 07.07.2016 - 09:06
fuente
0

Puede ver los parámetros de solicitud GET (cadena de consulta) en la barra de direcciones del navegador web

Así que no quieres terminar así

http://www.mysupersecuresite.com/login.php?name=me&password=mycoolpassword

    
respondido por el techno 07.07.2016 - 12:15
fuente
0
  

¿Hay alguna razón técnica sólida para preferir POST?

Sí, si hay un "cambio de estado", no se debe utilizar un método seguro.

Consulte RFC7231 :

  

Los métodos de solicitud se consideran "seguros" si sus semánticas definidas son
  esencialmente solo lectura; es decir, el cliente no solicita, y lo hace
  No espere, cualquier cambio de estado en el servidor de origen como resultado de
  Aplicar un método seguro a un recurso objetivo.   ...

     

los métodos GET, HEAD, OPTIONS y TRACE se definen como seguros.

Desde una perspectiva de seguridad, también se prefiere el uso de POST, ya que cualquier servidor proxy corporativo (es decir, aquellos con certificados de confianza para la inspección TLS / SSL) puede registrar parámetros de cadena de consulta GET de forma predeterminada (ya que forman parte de la URL), y también se almacenará en los registros de su servidor de forma predeterminada.

El uso de POST significa que es menos probable que estos valores filtren lugares que no espera.

    
respondido por el SilverlightFox 08.07.2016 - 10:28
fuente

Lea otras preguntas en las etiquetas