javascript-为了安全起见,我应该了解cookie域和范围的哪些信息?
作者:互联网
在哪里可以了解(或了解)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,会发生什么?
解决方法:
您可以分别在domain和path中限制cookie的有效范围.因此,您可以在两种情况下都设置一个cookie,该cookie仅对特定的域/路径组合有效:
>要仅为//company1.example.com/设置Cookie,请执行以下操作:
Set-Cookie: name=value; Path=/
省略Domain属性会使cookie仅对设置了该cookie的域有效.使用Path = /时,该cookie对前缀为/的任何路径均有效.
>要仅为//example.com/company1/设置Cookie,请执行以下操作:
Set-Cookie: name=value; Path=/company1/
与上述示例的解释相同.唯一的限制是您需要使用/ company1 /而不是/ company1,因为Path = / company1等效于Path = /,因此将使cookie对/ company2和/ company3也有效.
为了避免可以通过JavaScript读取cookie(减少使用XSS可以访问的资产),请设置HttpOnly attribute.
标签:cookies,security,multi-tenant,javascript 来源: https://codeday.me/bug/20191208/2092035.html