Javascript 是否有任何理由不使用src="//domain.com/file.js“;,哪个是协议动态的?

Javascript 是否有任何理由不使用src="//domain.com/file.js“;,哪个是协议动态的?,javascript,href,hyperlink,src,Javascript,Href,Hyperlink,Src,在我的一些电子商务应用程序中,我已经开始使用src=“//domain.com/file.js”来引用我想要包含的外部托管脚本。在我的电子商务应用程序中,并非所有页面都使用https,因为并非每个页面都有表单 我想知道始终使用此选项是否真的有任何缺点,因为它也是通往http的快捷方式,并且您可以始终避免不安全IE警告。如果您的目的是从加载页面时使用的相同协议加载资源,那么使用它是实现此目的的完美方法。但是,您可能需要从http加载一些资源,即使您的页面当前使用https(假设资源仅在http上提

在我的一些电子商务应用程序中,我已经开始使用
src=“//domain.com/file.js”
来引用我想要包含的外部托管脚本。在我的电子商务应用程序中,并非所有页面都使用https,因为并非每个页面都有表单


我想知道始终使用此选项是否真的有任何缺点,因为它也是通往
http
的快捷方式,并且您可以始终避免不安全IE警告。

如果您的目的是从加载页面时使用的相同协议加载资源,那么使用它是实现此目的的完美方法。但是,您可能需要从
http
加载一些资源,即使您的页面当前使用
https
(假设资源仅在
http
上提供,或者您更愿意通过不加密页面上的每个图像来减少服务器的负载)。在这种情况下,您需要明确指定协议名称。

@Mehrdad_Afshari从HTTP获取资源可能会打开注入漏洞,从而防止HTTPS专门用来保护您的MITM攻击。经典的例子是通过HTTP获取脚本,但过去有一些bug(请参阅),它们可能允许MITM通过IMG标记注入脚本。ForceHTTPS工作()中特别推荐了与方案相关的链接,因为存在类似的问题。

是的。我理解。我不是特别说
。如果你链接到一个可下载的视频文件呢?服务器的开销可能太高,无法处理。我也没有特别提到。如果你真的看一下我引用的第一篇文章,你会发现旧版本的浏览器会(奇怪地)将由标签而不是脚本交付的内容视为脚本,如果内容本身看起来像JavaScript,并且MIME类型不是由服务器发送的。因此,如果您不通过HTTPS加载此类内容,则可能存在代码注入漏洞(但可能不太可能,具体取决于您的威胁模型)。