[英]Access of third-party extensions to my cookies
我的网站上有二手Cookie。 最近,我注意到当第三方扩展窃取用户的会话Cookie并将其发送给诈骗者时,发生了一些骗局。 是否可以禁止浏览器扩展访问我网站的cookie? 借助任何meta标签?
TLDR:必须使用HTTPS
。 扩展对cookies
的访问级别很荒谬,包括httponly
。 在这里查看 , manifest.json
可以指向最终可以访问您的cookie的扩展脚本,但是如果您使用CSP
标头将域列入白名单,那么我想该扩展将无法对其进行任何操作,除非它们在较低版本下起作用层(脚本是注入的(:facepalm :),因此CSP不适用于它们,根据我的阅读,它看起来像是...。)
我会考虑先控制要允许通讯的第三方应用程序。 为此,请考虑:
Content-Security-Policy
标头。 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP 要使用上述功能,您需要将协议切换为https
。
接下来,仍然可能让您信任的脚本表现出恶意行为,然后对于严格保密的cookie,请使用httponly
选项从服务器端设置这些cookie:
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
这样,js无法访问它们。 阅读cookie @MDN
不用说,不要让其他人访问您的窗口:
oWindow = window.open(.....)
,请确保oWindow
无法访问您: oWindow.opener = null
; rel='noopener noreferrer'
属性。 X-Frame-Options: SAMEORIGIN
最后,我不建议这样做(我也没有尝试过),因为它不提供真正的安全性,但是,如果您确定第三方实现不需要XMLHttpRequest,则可以猴子打补丁,将其从全局中删除:
XMLHttpRequest = (function(xhtp){
//do whatever you need here while you have access
return null;
}(XMLHttpRequest))
或从原型中删除withCredentials
getter / setter,因为它永远不会影响相同的来源(假设不影响):
delete XMLHttpRequest.prototype.withCredentials
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.