¿Https conecta cookies seguras y previene ataques XSS. Tengo un blog simple que permite a los usuarios ingresar código JavaScript como entrada. Quiero permitir la entrada de Javascript por parte del usuario mientras sigo previniendo los ataques XSS y el robo de cookies. ¿Https ayuda a proteger las cookies? Solo encontré algunos sitios que hablan de esto y aún no están claros.¿Las cookies seguras de https previenen ataques XSS?
Respuesta
HTTPS puede evitar un ataque de hombre en el medio, no XSS. Desafortunadamente, la cookie de sesión no es segura con esto solo, se puede solicitar una página con HTTP y luego la misma cookie se enviará sin protección.
Para asegurarse de que la cookie de sesión se envía solamente en las conexiones HTTPS, puede utilizar los session_set_cookie_params de función() antes de iniciar la sesión:
session_set_cookie_params(0, '/', '', true, true);
session_start();
Nota la primera true
, significa que la cookie se enviará solo para páginas HTTPS. El segundo true
le dice al navegador, que JavaScript no debe acceder a la cookie de sesión, depende del navegador si se hace correctamente.
Otra buena forma de hacer que su sitio sea más seguro es utilizar la cookie de sesión solo para mantener la sesión y usar una segunda cookie para encargarse de la autenticación. Puedo darte un ejemplo si estás interesado.
Sí definitivamente, muestre un ejemplo. Según su respuesta, si la cookie de sesión se ve obligada a pasar por la conexión https, entonces podemos decir que está a salvo de los ataques xss. – Hussein
@Hussein - La cookie de sesión no es parte de un ataque XSS, una buena explicación sobre XSS que puede encontrar aquí: http://shiflett.org/articles/cross-site-scripting. El ejemplo que he escrito describe cómo usar páginas mixtas HTTP y HTTPS, pero también muestra cómo mantener separadas la sesión y la autenticación http://www.martinstoeckli.ch/php/php.html#ssl_nomim_cookie. La cookie de sesión siempre será el objetivo de los ataques. – martinstoeckli
Gracias @martin, información muy útil en su artículo. – Hussein
El protocolo HTTP (HTTPS o HTTP) no ayuda con XSS o realmente tiene alguna relación. Tendrá que agregar medidas preventivas y tener cuidado de dónde sacar el javascript al cliente.
@comm @cwa @jake gracias. Digamos que queremos que el usuario ingrese el código de Google Ads en el blog. El código de Google es javascript. No podemos quitar javascript ya que es necesario. Si permitimos javascript, estamos abiertos a muchas áreas de ataque xss. ¿Cuál es la solución a esto? Estoy seguro de que hay una manera de hacerlo. – Hussein
Una vez que haya permitido que alguien almacene dinámicamente y ejecute JavaScript arbitrario en su sitio, tendrá acceso a muchas cosas que le gustaría que dejaran en paz. Como mínimo, pueden secuestrar su ID de sesión de PHP (después de todo, tendrán acceso a sus cookies) y luego usar Ajax para reenviarlo a algún servidor remoto. Una vez que tienen eso, pueden hacer todo tipo de basura a sus usuarios.
Si tiene para hacerles añaden su propio código JavaScript, recomendaría que desactive específicamente toda la funcionalidad Ajax (XMLHTTPRequest = function(){}
impide toda Ajax con bastante facilidad en la mayoría de los navegadores, pero es posible que tenga que mirar en lo que necesita IE (I no sé qué hará ActiveXObject = function(){}
...)). Desafortunadamente, no puede evitar el acceso a las cookies si tiene alguna expectativa de usarlas (es decir, si tiene una sesión), por lo que deberá buscar alguna otra solución alternativa.
Si desea que los usuarios puedan ingresar el código de JavaScript , pero no lo ha analizado, ejecútelo a través de htmlspecialchars. Si desea que puedan ejecutar código, entonces no, HTTPS no será de ayuda, y necesitará analizar el código y eliminar cualquier error de él.
- 1. Prevención de ataques XSS
- 2. Cookies de sesión seguras en ASP.NET a través de HTTPS
- 3. Prevención de ataques Javascript y XSS
- 4. Reproducción de ataques para solicitudes HTTPS
- 5. ¿Cómo puedo hacer que las cookies sean seguras (solo https) por defecto en los rieles?
- 6. ¿Cómo evitar aplicaciones de ataques XSS?
- 7. ataques XSS y los atributos de estilo
- 8. ¿HTTPS protege contra ataques CSRF?
- 9. Google App Engine - Cookies seguras
- 10. Ayuda de la sesión CodeIgniter, ¿las cookies no son seguras?
- 11. Sirviendo páginas de Django seguras con HTTPS
- 12. Persistencia de sesión SSL y cookies seguras
- 13. ¿Cómo hacer que las páginas php/html sean seguras/https?
- 14. ¿La codificación HTML evita los ataques de seguridad XSS?
- 15. Utilice PHP para evitar ataques XSS dentro de una imagen
- 16. ¿Markdown (con strip_tags) es suficiente para detener los ataques XSS?
- 17. ¿Debería codificarse el contenido de las cookies al usar https?
- 18. Sanitize $ _GET parámetros para evitar XSS y otros ataques
- 19. ¿Por qué la codificación HTML previene ciertos ataques XSS?
- 20. Jsoup Cookies para HTTPS raspado
- 21. ¿Cuáles son las mejores prácticas para evitar ataques xss en un sitio PHP
- 22. ¿Es posible que un ataque XSS obtenga cookies HttpOnly?
- 23. ¿Qué navegadores admiten las cookies de HttpOnly?
- 24. URL de clips de seguridad seguras solo para páginas seguras
- 25. ¿Las ventanas Win32 son seguras?
- 26. ¿Las matrices C# son seguras?
- 27. ¿Las engas C# son seguras?
- 28. ¿Quién genera las claves de sesión HTTPS?
- 29. HTTP Cookies y solicitudes de AJAX a través de HTTPS
- 30. prevención de XSS en PHP
HTTPS en sí mismo no impide XSS. –
Permitir que los usuarios ingresen Javascript es ** extremadamente ** peligroso. Es muy difícil evitar que un usuario malintencionado haga cosas desagradables con los otros usuarios. –
@ Cameron: si es peligroso o no es irrelevante. Dado que los navegadores admiten el pseudo protocolo * javascript * y los complementos como Greasemonkey y Firebug permiten que los usuarios ejecuten scripts en páginas, es imposible evitar que los usuarios ejecuten el script que quieran en las páginas de su navegador o cualquier otro agente de usuario. – RobG