我可以在哪里学习(或者是什么)关于cookie的范围,以避免对经过身份验证的用户进行CSRF和XSS攻击?
例如,如果我有一个多租户系统,单个用户可以访问一个或多个站点,那么更安全:
-
company1.hoster.com
-
company2.hoster.com
-
company3.hoster.com
要么
-
www.hoster.com/company1
-
www.hoster.com/company2
-
www.hoster.com/company3
如果我在“hoster.com”设置cookie会怎样?
2 回答
您可以分别限制domain和path中cookie的有效范围 . 因此,您可以在两种场景中设置一个仅对该特定域/路径组合有效的cookie:
//company1.example.com/
设置cookie:省略Domain属性使cookie仅对其设置的域有效 . 并且使用
Path=/
时,cookie对于具有前缀/
的任何路径都有效 .//example.com/company1/
设置cookie:与上面的例子相同的解释 . 唯一的限制是你需要使用
/company1/
而不是/company1
,因为Path=/company1
将等同于Path=/
,因此会使cookie对/company2
和/company3
也有效 .为了避免cookie可以通过JavaScript读取(减少使用XSS访问的资产),请设置HttpOnly attribute .
Open Web application security project发布了许多有关安全Web应用程序开发的有 Value 信息 .
Cookie具有范围和路径属性,您通常不希望为“/”或通配符主机发出cookie * .hoster.com都是不明智的 .
它并不像这一个决定那么简单,你想到设计的安全性是好的,但在开发的每个阶段,安全都是一个过程 .