想象一下你拥有mysite.com的场景,它从一个外部域加载javascript,例如adsprovider.com/ads.js。
adsprovider.com的javascript然后可以对mysite.com执行ajax调用并尝试检索用户的会话数据吗?如果是这样,您如何保护您的用户免受它侵害?
答案 0 :(得分:0)
adsprovider.com的javascript然后可以执行对mysite.com的ajax调用
是。原点由脚本加载到的HTML文档的URL定义,而不是由脚本本身加载的URL定义。
检索用户的会话数据
仅当会话数据通过HTTP公开时。你永远不会给客户端的东西是安全的(但是可能会有很多会话数据应该在你的服务器和用户之间保密)。
请注意,该脚本可以读取document.cookies
并窃取会话令牌(除非会话令牌与 httponly 标志一起发送)。
如果是这样,您如何保护您的用户不受其侵害?
在不同来源托管的iframe中对广告进行沙盒化。
答案 1 :(得分:-1)
幸运的是,无法直接从外部服务器请求对会话数据的Ajax调用。
您当然可以从CDN外部源加载javascript,但脚本从您自己的域运行,并且无法从外部访问您的服务器。
否则会出现很多安全问题。
另请注意,javascript是客户端。
您可以查看同源政策和 CORS ,了解有关此主题的更多信息。