使用角度设置 Cookie 参数“HttpOnly”的任何想法
Posted
技术标签:
【中文标题】使用角度设置 Cookie 参数“HttpOnly”的任何想法【英文标题】:any idea to setup Cookie parameter 'HttpOnly' using angular 【发布时间】:2020-04-23 22:21:58 【问题描述】:我试图使用 angular 设置 cookie 的参数。我可以设置到期日期和安全参数,但无法设置 HttpOnly 参数。 我已经使用 angular cookie 服务设置了“过期”和“安全”,即“cookie.service.d.ts”使用下面的方法
set(name: string, value: string, expires?: number | Date, path?: string, domain?: string, secure?: boolean, sameSite?: 'Lax' | 'Strict'): void;
我找不到如何设置 HttpOnly 参数,因为 Angular cookie 服务不包含这样的参数。 设置 HttpOnly 参数的任何最佳方式。
PFA..
【问题讨论】:
【参考方案1】:HttpOnly cookie 上的标志意味着它只能由服务器端设置和访问。客户端代码将无法访问此类 cookie。因此,您将无法从客户端代码(如 angular)设置此标志。
这是一项安全功能,可防止客户端代码(通过 XSS 注入的恶意代码)读取存储在 cookie 中的敏感信息。
请参阅this issue 和this answer 了解更多信息。
下面还有来自MDN 的文本sn-p。 -
通过 javascript 创建的 Cookie 不能包含 HttpOnly 标志。
【讨论】:
很好的回应。但是,角度可以读取那个 cookie 吗?【参考方案2】:HttpOnly cookie 无法从客户端访问,这意味着您将无法读取或设置它。
您可以使用常规 cookie 来存储您可以从后端生成的授权令牌,例如 JWT。
默认情况下,Angular 将所有值都视为不受信任。当从模板绑定或插值将值插入 DOM 时,Angular 会清理并转义 untrusted values。
【讨论】:
以上是关于使用角度设置 Cookie 参数“HttpOnly”的任何想法的主要内容,如果未能解决你的问题,请参考以下文章
最近机房让整改的漏洞 设置cookie httponly X-Frame-Options头未设置
在 codeigniter 中使用 HTTPOnly 标志设置 cookie