链接到外部.js文件时,这不是安全风险吗?

Bla*_*man 14 javascript security jquery

这意味着,如果我有一个网站,并且我链接到外部.js文件,比如jquery或一些小部件服务,他们可以很容易地通过身份验证cookie拉,然后以正确方式登录?

如果我在SSL下怎么办?

SLa*_*aks 21

如果您包含来自其他域的Javascript或JSONP代码,则该代码具有完整的客户端功能,并且可以执行任何操作.
它可以发送AJAX请求以自动让您的用户执行操作,并且可以窃取document.cookie.

如果您的身份验证cookie仅限HTTP,则无法窃取它们,但它仍然可以使用AJAX模拟用户.

永远不要包含您不信任的域中的JS文件.

如果您的页面使用SSL,则所有Javascript文件也必须使用SSL,否则攻击者可以修改未加密的Javascript以执行他想要的任何操作.
因此,如果SSL页面使用非SSL资源,浏览器将显示安全警告.

请注意,JSONP也不例外.
任何JSONP响应都可以完全访问您的DOM.
如果担心安全性,请不要使用不受信任的JSONP API.


Zed*_*Zed 6

我只能同意SLaks和Haochi(+1和所有).

这是非常不安全的,即使您信任域,也不应该这样做.不要相信那些告诉你并非如此的答案,因为它们是错的.

这就是为什么现在几乎所有链接到Google的CDN托管在Google Libraries API开发人员指南上的JavaScript库的链接都是安全的HTTPS链接,即使对所有这些流量进行加密也意味着即使对Google来说也是一个巨大的开销.

他们过去建议仅对自己使用HTTPS的网站使用HTTPS,现在示例中根本没有HTTP链接.

关键是你可以信任Google和他们的CDN,但是你永远不能相信一些可怜的schmuck咖啡馆里的本地dns和路由器,你的访问者可能会从这些咖啡馆连接到你的网站,而谷歌的CDN是一个很好的目标.


m.e*_*son 0

不会,因为您网站的 cookie 只会发送到您的域。

例如,当您的浏览器看到yoursite.com时,它将发送yoursite.com的身份验证 cookie 。如果它还必须对 jquery(对于 .js 脚本)发出不同的请求,它不会发送 yoursite.com 的 cookie(但它发送一个 jquery cookie - 假设存在)。

请记住,每个资源都是 HTTP 下的单独请求。

  • 下次仔细阅读他的问题。他特别谈到了第三方服务器上的 JS,答案是**“是的,那非常不安全”**。 (2认同)