gpt4 book ai didi

javascript - 通过 <script> 标签加载到网页中的 JavaScript 文件的源可以被该页面中的其他 JavaScript 读取吗?

转载 作者:行者123 更新时间:2023-12-02 05:20:13 25 4
gpt4 key购买 nike

我正在研究 CSRF 预防,我有一个关于返回 JSON 的 GET URL 的问题,以及该 URL 返回的数据是否可以通过第三方网页访问。

例如,假设这个请求

GET HTTP 1.1 /rest/foo.js 
Host: myhost.com

返回动态生成的 JSON,如下所示,带有每个 session 的 CSRF token :

{user:"My name", userId:1234, CSRFToken: "EFB8765AC2134ACB23486"}

请注意,这是 不是 一个 JSONP 请求。现在,假设我在snekythirdparty.com 上有一个网页,内容如下:

<html>
<head>
<script language="javascript" src="http://myhost.com/rest/foo.js" />
</head>
...
</html>

我的问题是:脚本,Flash小程序或其他第三方网站页面中的任何其他内容(例如这个)是否可以读取foo.js的源代码以获取CSRF token ?

最佳答案

您不必隐藏您的 CSRF token
CSRF 保护的所有目的只是为了确保对您站点的请求确实来自您的站点(或您可以授予他们授权的其他站点)。

所以我真的不明白你想在你的例子中实现什么:
如果您想阻止 foo.js 从另一台服务器调用,您必须强制人们在请求该文件时发送 CSRF token ,然后您在服务器中检查该 token 是否实际匹配 session key ,例如之前设置的验证该用户的 session key 确实最初来自您的网站。

如果 json {user:"My name", userId:1234, CRSFToken: "EFB8765AC2134ACB23486"} 静态地写在这个javascript中,那么你误解了CSRF保护的所有概念。

您必须根据一些用户唯一数据(可以是数据库中的数据,可以是 session ID 等)动态创建 token ,然后在您的站点周围传递 token 并阻止对您想要保护的页面的请求,如果此 token 无效/存在。

CSRF 保护可以在常规形式和 ajax 调用中完成 - 就像你选择的那样

Good Explanation

关于javascript - 通过 &lt;script&gt; 标签加载到网页中的 JavaScript 文件的源可以被该页面中的其他 JavaScript 读取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15518957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com