https安全cookie可以防止XSS攻击吗


Does https secure cookies prevent XSS attacks?

实现https连接安全cookie并防止XSS攻击。我有一个简单的博客,允许用户输入JavaScript代码作为输入。我希望允许用户输入Javascript,同时仍然防止XSS攻击和cookie窃取。https是否有助于保护cookie。我只找到了很少的网站谈论这一点,仍然有点不清楚。

HTTPS可以防止中间人攻击,而不是XSS。不幸的是,仅凭这一点,会话cookie是不安全的,人们可以使用HTTP请求页面,然后相同的cookie将不受保护地发送。

为了确保会话cookie仅在HTTPS连接上发送,您可以在启动会话之前使用函数session_set_cookie_params((:

session_set_cookie_params(0, '/', '', true, true);
session_start();

请注意第一个true,这意味着cookie将仅发送到HTTPS页面。第二个true告诉浏览器,JavaScript不能访问会话cookie,这取决于浏览器是否正确访问。

另一个让你的网站更安全的好方法是,只使用会话cookie来维护会话,并使用第二个cookie来进行身份验证。如果你感兴趣,我可以举一个例子。

HTTP协议(HTTPS或HTTP(对XSS没有帮助,或者确实有任何关系。您需要添加预防措施,并在向客户端输出javascript时要小心。

一旦你允许某人在你的网站上动态存储和执行任意JavaScript,他们就可以访问很多你希望他们不要管的东西。至少,他们可以劫持你的PHP会话ID(毕竟他们可以访问你的cookie(,然后使用Ajax将其转发到某个远程服务器。一旦他们做到了,他们就可以对你的用户做各种各样的坏事。

如果您让允许他们添加自己的JavaScript,我建议您特别禁用所有Ajax功能(XMLHTTPRequest = function(){}在大多数浏览器上很容易阻止所有Ajax,但您可能需要了解IE需要什么(我不知道ActiveXObject = function(){}会做什么…((。不幸的是,如果您希望使用cookie(即,如果您有会话(,则无法阻止对cookie的访问,因此您需要找到其他解决方法。

如果您希望用户能够输入JavaScript代码,但不能对其进行解析,请通过htmlspecialchars运行它。如果你想让他们能够执行代码,那么不,HTTPS没有帮助,你需要解析代码并从中删除任何错误。

您可以使用Web应用程序防火墙来扫描和阻止XSS,包括在cookie中,尽管后者可能会导致误报https://medium.com/p/5d4b1d33219a/edit