【发布时间】:2016-08-31 18:31:16
【问题描述】:
想象一个场景,您拥有 mysite.com,它从外部域(例如 adsprovider.com/ads.js)加载 javascript。
adsprovider.com 的 javascript 然后可以对 mysite.com 执行 ajax 调用并尝试检索用户的会话数据吗?如果是这样,您如何保护您的用户免受它的侵害?
【问题讨论】:
标签: php ajax cross-domain session-cookies
想象一个场景,您拥有 mysite.com,它从外部域(例如 adsprovider.com/ads.js)加载 javascript。
adsprovider.com 的 javascript 然后可以对 mysite.com 执行 ajax 调用并尝试检索用户的会话数据吗?如果是这样,您如何保护您的用户免受它的侵害?
【问题讨论】:
标签: php ajax cross-domain session-cookies
adsprovider.com 的 javascript 然后可以对 mysite.com 执行 ajax 调用
是的。来源是由加载脚本的 HTML 文档的 URL 定义的,而不是由加载脚本本身的 URL。
检索用户的会话数据
仅当会话数据通过 HTTP 公开时。你从不提供给客户端的东西是安全的(但可能会有相当多的会话数据应该在你的服务器和用户之间保密)。
请注意,该脚本也可以读取document.cookies 并窃取会话令牌(除非发送会话令牌时带有 httponly 标志)。
如果是这样,您如何保护您的用户免受它的侵害?
沙盒广告在不同来源托管的 iframe 中。
【讨论】:
幸运的是,您的会话数据的 Ajax 调用不能直接从外部服务器请求。
您当然可以从 CDN 外部源加载 javascript,但脚本从您自己的域运行,并且无法从外部访问您的服务器。
否则会有很多安全问题。
还要记住,javascript 是客户端。
您可以查看同源政策和CORS以获取有关此主题的更多信息。
【讨论】: