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