调用外部JS和CSS到我的网站-风险是什么

本文关键字:网站 是什么 我的 外部 JS CSS 调用 | 更新日期: 2023-09-27 18:25:19

我有一个值得信赖的合作伙伴,我想让他调用我的Iframe并添加一个JS/css文件路径作为参数,我会这样调用它:

 <script type="text/javascript" src="@(HttpUtility.UrlDecode(HttpContext.Current.Request.Params["CustomJs"]))" ></script>
 <link type="text/css"  media="screen" href="@(HttpUtility.UrlDecode(HttpContext.Current.Request.Params["CustomCss"]))" rel="stylesheet" /> 

这是为了让他能够钩住设计并注册一些JS钩子。合作伙伴是值得信赖的,并将在一份文件上签字,说明JS/css的使用仅限于我们方调用的允许函数。

问题是,我是否会让我的客户面临任何形式的危险情况(假设合作伙伴没事)
这一切都在ssl下
安全风险是什么。

感谢

调用外部JS和CSS到我的网站-风险是什么

风险在于,如果您的合作伙伴的安全受到威胁,您的系统也将变得不安全。假设,如果攻击者以某种方式将恶意代码添加到您合作伙伴的脚本中,则代码可能会传递到您的系统。这与跨站点脚本攻击高度相关http://en.wikipedia.org/wiki/Cross-site_scripting。

为了规避这种风险,我建议为这些JS/CSS文件实现一个有节制的代理。例如,ASP.NET处理程序(.ashx)将调用合作伙伴的站点以获取原始脚本,并将其存储在内部某个位置(可能在数据库中),而有问题的框架通过使用处理程序来获取脚本和CSS。类似于:

<script ... src="ModeratedProxy.ashx?partner=abcd&file=efg.js"></script> 

如果合作伙伴更改了脚本,处理程序会通知网站所有者,甚至可能允许对任何外部文件进行预审核。

由于CSS和JavaScript嵌入到框架中的文档中,而不是直接嵌入到文档中,因此CSS仅应用于框架的文档。

框架的JavaScript是否可以访问文档的DOM则稍微复杂一些。因为这里适用同源政策。但是,除非你和你的合作伙伴共享相同的来源,否则你的合作对手的JavaScript无法访问你的文档的DOM并从中读取数据或更改它。