外部javascript可以进行ajax调用以获取会话数据吗?

时间:2016-05-05 20:21:55

标签: php ajax cross-domain session-cookies

想象一下你拥有mysite.com的场景,它从一个外部域加载javascript,例如adsprovider.com/ads.js。

adsprovider.com的javascript然后可以对mysite.com执行ajax调用并尝试检索用户的会话数据吗?如果是这样,您如何保护您的用户免受它侵害?

2 个答案:

答案 0 :(得分:0)

  

adsprovider.com的javascript然后可以执行对mysite.com的ajax调用

是。原点由脚本加载到的HTML文档的URL定义,而不是由脚本本身加载的URL定义。

  

检索用户的会话数据

仅当会话数据通过HTTP公开时。你永远不会给客户端的东西是安全的(但是可能会有很多会话数据应该在你的服务器和用户之间保密)。

请注意,该脚本可以读取document.cookies并窃取会话令牌(除非会话令牌与 httponly 标志一起发送)。

  

如果是这样,您如何保护您的用户不受其侵害?

在不同来源托管的iframe中对广告进行沙盒化。

答案 1 :(得分:-1)

幸运的是,无法直接从外部服务器请求对会话数据的Ajax调用。

您当然可以从CDN外部源加载javascript,但脚本从您自己的域运行,并且无法从外部访问您的服务器。
否则会出现很多安全问题。

另请注意,javascript是客户端。

您可以查看同源政策 CORS ,了解有关此主题的更多信息。