防止第三方插件/扩展使用获取凭证(httponly cookies)

问题描述 投票:0回答:1

是否有任何最佳实践来实现会话登录以防止第三方插件/扩展向服务器发送请求?

我看到带有

httpOnly
标志的 cookie 可以阻止 javascript 交互,而
sameSite
标志可以减轻跨站点攻击,但是浏览器插件/扩展呢?

某些插件/扩展可以在其代码中调用

fetch
,如果凭据设置为
httpOnly
,则
include
cookie 会通过 fetch 自动发送,因此任何创建包含凭据的 fetch 的插件/扩展都可以请求服务器操纵用户数据?

# some_bad_plugin.js

fetch(YOUR_SERVER_URL, {
  method: 'GET',
  credentials: 'include',
})

我认为这个问题可以通过存储在

cookie
localStorage
中的额外登录信息来缓解,并且对服务器的请求需要这些字段。但这似乎回到了没有
httpOnly
饼干的开始......

有什么我错过的吗?

javascript authentication cookies fetch httponly
1个回答
0
投票

除了将 cookie 设置为包含 HttpOnly 和 Secure 属性之外,如果服务器为 cookie 设置了 sameSite=Lax 属性,则 cookie 将仅包含在顶级导航中,而不会包含在任何跨站点获取中

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#lax

© www.soinside.com 2019 - 2024. All rights reserved.