Dado que es fácil de usar JSONP en una etiqueta de script para obtener los datos de un dominio diferente, ¿no deberíamos permitir que XMLHttpRequest para hacerlo así? No tiene mucho sentido afirmar que fortalece la seguridad cuando es posible evitarla, aunque con una semántica más desordenada.¿Por qué prohibir cross-domain ajax cuando funcionan las etiquetas de script?
Respuesta
JSONP sólo funciona si el proveedor lo permite.
Si a través de dominios AJAX trabajó, uno de los primeros problemas que habría personas que desean publicar a otros dominios con la esperanza de que usted tiene una cuenta autenticada allí. Esto es CSRF.
que podían obtener una página autenticado como usted, lleve a su manera, y luego publicar algo malicioso con el token (que indica a la aplicación se trata de una solicitud interna).
Estoy realmente sorprendido de cuántos desarrolladores no están al tanto de CSRF. – corrodedmonkee
Buen punto. Sin embargo, parece que mejorar XMLHttpRequest sería una mejor solución que los scripts de script. ¿Por qué no darle su propio entorno de cookies? – henle
@henle Usted * podría * autenticarse mediante IP o GET params. – alex
En realidad, JSOP es una solución inteligente para las limitaciones de la misma política de origen pero básicamente es un ataque autoinflingido de scripting (recuerde que JSONP warks utilizando etiquetas de script en lugar de XHR le da control total sobre toda su página a su proveedor de datos JSONP; por lo general, no son malvados, pero a veces son incompetentes, así que tenlo en cuenta).
Hay muchas discusiones sobre cómo arreglar la misma política de origen en las nuevas versiones de ECMAScript porque claramente no funciona si se tiene que eludir para hacer cualquier tipo de mashups. Una idea interesante en mi opinión es tener una versión más barata de XHR que no envíe cookies o encabezados inútiles y pueda evitar ataques de falsificación de solicitudes entre sitios, pero aún permitiendo mezclas seguras sin dar acceso total al proveedor de datos a su página. Pero aún tenemos que esperarlo.
Correcto, no permitir (o sandbox) las cookies y los encabezados que se pueden abusar en las solicitudes a dominios extranjeros. Realmente no suena tan difícil de arreglar. XHR no está definido por ECMAScript, está definido por W3C. – henle
- 1. ¿jQuery elimina las etiquetas de script devueltas por las solicitudes AJAX?
- 2. ¿Cómo funcionan las etiquetas HTML dentro de la etiqueta de script?
- 3. Intentando seleccionar etiquetas de script de jQuery ajax get response
- 4. Al cargar una página html mediante ajax, ¿se cargarán las etiquetas de script?
- 5. Cargando etiquetas de script a través de AJAX
- 6. ¿Por qué las etiquetas son todas minúsculas?
- 7. ¿Por qué debería preocuparme por las etiquetas ligeras y anotadas?
- 8. ¿Las etiquetas de los ejes secundarios no funcionan?
- 9. Aptana advierte sobre el script y las etiquetas de enlace cuando no debería
- 10. ¿Por qué las conversiones implícitas C funcionan como lo hacen?
- 11. Configuración CrossDomain en Google Chrome
- 12. Las pestañas jQuery no funcionan
- 13. Contraseñas RAR, ¿por qué no funcionan las tablas rainbow?
- 14. ¿Por qué funcionan las funciones sigmoideas en Neural Nets?
- 15. ¿Por qué popViewController sólo funcionan todas las otras veces
- 16. ¿Por qué las cerraduras no funcionan para mí?
- 17. javascript define el alcance por etiquetas de script?
- 18. ¿Por qué irrita a veces Irb cuando pego un script?
- 19. Implementaciones de botón AJAX: ¿cómo funcionan?
- 20. ¿Cómo funcionan las cookies de HttpOnly con las solicitudes de AJAX?
- 21. ¿Por qué las etiquetas php no están cerradas en drupal?
- 22. ¿Puedo eliminar las etiquetas de script con BeautifulSoup?
- 23. Cómo ejecutar código JavaScript dentro de una etiqueta de script devuelto por una respuesta ajax
- 24. ¿Qué son las etiquetas de documentación C#?
- 25. ¿Por qué AJAX sobre iFrames?
- 26. ¿Por qué mis enums C# no funcionan?
- 27. ¿Por qué no funcionan mis extensiones HtmlHelper?
- 28. ¿Por qué las bombas C-forkbombs no funcionan como las de bash?
- 29. ¿Por qué las solicitudes AJAX están limitadas al mismo dominio?
- 30. TinyMCE, IE9, pelando <script> etiquetas
Es necesario leer acerca de la política del mismo origen, recomiendo el manual de seguridad del navegador Google. – rook