如何创建防盗的cookie并且不能被用户/客户端篡改?

Mar*_*ngh 4 security cookies cryptography

防盗意味着我可以检测到这来自不同的客户端IP或不同的路由(例如当客户端落后于代理或其他东西时).

防篡改意味着我可以检测到cookie无效且不是由服务器发送的.

roo*_*ook 5

Cookie 必须始终加密安全的伪随机数(CSPRNG),它也是加密随机数或仅使用一次的值.该值用于访问服务器端的状态信息.

为什么?如果攻击者修改了值无关紧要,他仍然无法改变会话状态.

加密cookie怎么样?在安全性方面,最好避免所有问题.这是对密码术的滥用,因为它为最近的ASP.NET Oracle CBC Padding攻击等攻击打开了大门.

要添加的其他一些功能:

"安全Cookies" - 可怕的名称,但它是一个标志,强制cookie始终通过HTTPS传输.这可以确保您永远不会违反OWASP A9.

"HTTPOnly Cookies" - 这使得JavaScript无法访问document.cookie并使cookie更难以劫持.

确保修补Session Riding aka CSRF.

确保使用Sitewatch免费版Wapiti测试您的XSS应用程序.即使使用HTTP Only cookie,XSS也可用于绕过基于Token和Referer的CSRF保护.