javascript - 检测 JavaScript 文件的欺骗

标签 javascript asp.net security spoofing

假设我正在开发一组旨在嵌入任何网页的 JS 小部件(类似于 iGoogle、Pageflakes 小部件)。

客户端可以通过包含脚本标签来嵌入小部件:

<div id="widgetHost">
    <script src="http://fantasticwidgets.net/awesomeWidget.js"></script>
    <script src="http://fantasticwidgets.net/awesomeWidgetAgain.js"></script>
</div>

现在这些小部件依赖于公共(public)库(让我们使用 jQuery、underscore 和我自己的一些 - 例如 myCommon.js)。

理想情况下,这是应该发生的事情:

  • 先下载Widget的bootstraper js
  • Widget 的 Bootstrap js 检查是否存在这些库文件及其所需的版本(比如页面上是否加载了 jQuery v1.6.2,myCommon v1.1 等)
  • 如果加载了其中任何一个,请不要请求这些文件,而只下载缺少的脚本。
  • 这些脚本然后调用一些网络服务,做一些魔术并在页面上呈现 HTML

关注:检查已加载的文件会引入脚本欺骗漏洞。恶意用户会在加载后欺骗库,他用它来窃取敏感信息或做其他坏事。

解决方案:不检查已加载的库,总是再次发送所有库。这仍然不是防弹的,但至少让他变得更难一点,因为他必须再次欺骗。 但是,这会导致带宽浪费和加载时间增加。

问题:是否可以检测加载的文件是否被篡改,最好是在客户端?或者它是否必须包含服务器端解决方案?如果重要的话,我已经在服务器端运行了 ASP.Net。

最佳答案

此处唯一真正的解决方案是“使用 HTTPS 传送脚本”。如果坏人可以使用来自另一个域的 HTTPS 内容毒害用户的浏览器缓存,那么您就已经玩完了,因为他也有能力更改您提供给用户的页面。

关于javascript - 检测 JavaScript 文件的欺骗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976451/

相关文章:

Javascript 如何按字段在数组中搜索

javascript - 从数组中查找和删除项目的合适的数据结构或算法是什么

jquery - 在 jQuery 对话框中时,asp.net 表单控件不可读,如何修复它?

c# - 从 Ax 2012 Listpage (EP) 多选到 downloadDocument.aspx

security - 检查机器数量

linux - 在虚拟 Ubuntu 上使用 XAMPP 设置 DVWA

java - 由于违反防火墙策略而拒绝访问

javascript - 在 JavaScript 中制作反向数组的独立副本

javascript - 判断页面是否刷新

c# - 如何修复这个重定向循环?