Cookies 通过使用随机路径在本地使用cookie(安全性)

Cookies 通过使用随机路径在本地使用cookie(安全性),cookies,security,Cookies,Security,经典问题,web应用程序有安全和不安全的页面(即,帐户页面是安全的(HTTPS)和常见问题解答页面是不安全的(HTTP)),作为开发人员,我希望用户在不安全页面上看到自定义的登录按钮(即,如果您是该站点的新手,它会显示“单击登录”,如果您有会话,它会显示“欢迎用户单击以查看您的帐户”) 为此,服务器只在帐户页面上发送安全cookie,但该帐户页面(通过jQuery)也会在安全cookie的基础上设置不安全cookie。浏览器可以使用不安全cookie更新登录按钮(通过Javascript) 我正

经典问题,web应用程序有安全和不安全的页面(即,帐户页面是安全的(HTTPS)和常见问题解答页面是不安全的(HTTP)),作为开发人员,我希望用户在不安全页面上看到自定义的登录按钮(即,如果您是该站点的新手,它会显示“单击登录”,如果您有会话,它会显示“欢迎用户单击以查看您的帐户”)

为此,服务器只在帐户页面上发送安全cookie,但该帐户页面(通过jQuery)也会在安全cookie的基础上设置不安全cookie。浏览器可以使用不安全cookie更新登录按钮(通过Javascript)

我正在使用随机字符串(每次在服务器上随机)作为路径,以防止cookie通过网络发送。此数据只是一个用户名,因此完全锁定并不重要,但仍应加以保护

使用jQuery(jQuery Cookie插件)在此处设置Cookie:


到目前为止还不错,但对于黑客来说,路径随机化是否能防止窃取不安全的cookie?

我知道这是一个非常古老的问题,但我会尝试回答它

是和否

它不一定是完全随机的-随机的唯一原因是确保用户从未尝试访问该url,也没有任何ajax请求进入该url。为了确保发生这种情况,您可以在路径中使用UUID

您还需要确保控制域上的所有JS

这样cookie就永远不会通过网络发送(通过网络发送cookie的唯一方法是让JS读取
document.cookie
属性并附加它,或者以某种方式发送对该随机URL的请求)

黑客将无法读取cookie,因为浏览器保护cookie不受其他域执行的JS的影响(protocol://domain:port 组合必须匹配)

因此,读取cookie的唯一方法是访问计算机,然后cookie可以从光盘中读取,因为它被保存为纯文本。但是,访问用户帐户会带来更多的安全漏洞


因此,要回答您的问题,它是非常安全的,但您必须记住这种解决方案所带来的漏洞。

您可以通过在服务器端设置登录/欢迎文本来完全避免这种情况。您有什么原因不能/不想这样做吗?两个原因:1)我仍然需要那些通过HTTP和2)性能通过网络发送的cookie:与用户获取缓存页面相比,每次都需要一个HTTP请求
$.cookie('userLoggedIn', 'username', { domain: '.example.com', httpOnly: false, path: 'DFKLJGHDFDLFKHGAFDAKDJFH', expires: [one year], secure: false });