He leído que verificar el encabezado X-Requerido-Con de la solicitud ajax es una buena forma de asegurarse de que la solicitud no provenga del exterior. En el lado del servidor, ¿cómo puedo verificar este encabezado? y ¿cuál es la forma correcta de reaccionar de este encabezado faltante o incorrecto (redirigir, lanzar excepción, else)?Cómo el servidor puede verificar las solicitudes ajax no desde el sitio, X-Requerido-Con
Respuesta
se puede comprobar como este ...
$isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';
Si usted es solamente acceso a través esperando XHR, a continuación, sólo exit
si esta cabecera no está presente.
Nota: Este encabezado es trivial para suplantar. No confíe en esto para nada más que parece que vino de na XHR.
Quiero usarlo para asegurarme de que la solicitud no llegue de alguien que miró mi código js, tomó las URL y está enviando comentarios desde fuera de mi sitio. Entonces, si se puede fingir, ¿entonces no hay forma de protegerse de esto? – zmol
@zmol Lo siento, no hay forma de hacerlo simplemente buscando la presencia de ese encabezado. – alex
, pero ¿hay otras formas? No tiene que ser a través de este encabezado. El objetivo final es asegurarse de que la solicitud no provenga de alguien que lea el código js, lea la línea url de ajax y esté reproduciendo la url desde afuera :) – zmol
La única forma segura de garantizar que la solicitud provenga de su sitio y no de otra persona es emitir un token único para el usuario y almacenarlo en su sesión. En el código en el que realiza la solicitud AJAX, debe pasar este token y si coincide con el de su sesión, entonces puede estar seguro de que la solicitud proviene de su sitio.
Más información: http://en.wikipedia.org/wiki/Cross-site_request_forgery
- 1. ¿Cómo puedo verificar si el servidor puede manejar solicitudes SOAP?
- 2. Seguridad de las solicitudes AJAX
- 3. ¿Cómo ocultar las solicitudes de ajax desde la consola Firebug?
- 4. ¿Cómo esperar las solicitudes jQuery Ajax para completar desde WatiN?
- 5. Firebug no muestra las solicitudes ajax
- 6. Solicitudes AJAX entre sitios
- 7. $ .ajax ignorando el parámetro de datos para las solicitudes DELETE
- 8. Distingue las solicitudes ajax de las solicitudes completas en el validador personalizado JSF
- 9. Enviar solicitudes de aplicaciones desde el lado del servidor
- 10. sondeando el servidor con ajax
- 11. Verificar solicitudes AJAX pendientes o solicitud HTTP GET/POST
- 12. No se puede eliminar el sitio Webmatrix
- 13. Xcode no puede verificar la identidad del servidor "github.com", Xcode
- 14. ¿Cómo se manejan las solicitudes ajax cuando el usuario no está autenticado?
- 15. ¿Cómo diferenciar las solicitudes de Ajax de las solicitudes Http normales?
- 16. No se puede descargar [archivo] desde [servidor] No se puede abrir este sitio de Internet. El sitio solicitado no está disponible
- 17. Mecanismo de cola para solicitudes AJAX del lado del servidor
- 18. AJAX - Cómo pasar el valor al servidor
- 19. ¿Cómo se muestran las solicitudes de Ajax en la URL?
- 20. Cómo reducir un número de solicitudes AJAX para un chat?
- 21. Puede agregar prioridades a las llamadas AJAX
- 22. Cancelar las solicitudes AJAX en vuelo utilizando Jquery .ajax?
- 23. acelerando solicitudes ajax - ¿se puede aplicar la compresión gzip?
- 24. Solicitudes AJAX de caché
- 25. El mensaje recibido desde el servidor no se pudo analizar
- 26. cómo enviar imágenes png desde el servidor para mostrar en el navegador a través de ajax
- 27. ¿Cómo rastrear las solicitudes de Ajax con Google Analytics?
- 28. ¿Cómo se manejan las solicitudes de DWR por lotes de forma diferente a las no procesadas en el servidor?
- 29. ¿es mejor o agrupar mis solicitudes de AJAX o enviar todas las solicitudes por separado?
- 30. ¿Cómo se manejan las solicitudes de Ajax en Spring MVC?
Es posible que desee ver en http://stackoverflow.com/questions/623299/can-the-x-requested-with-http-header-be-spoofed; muestra que 'X-Requested-With' puede ser falso. –
quieres ver esto también http://www.yiiframework.com/forum/index.php?/topic/4945-yiiapp-request-isajaxrequest/ –