繁体   English   中英

javascript(和插件)可以在网页中的所有位置/隐藏在哪里?

[英]Where all can javascript (and plugins) live/hide in a webpage?

我已经编写了一个拦截代理,并且正在努力为它添加一个功能,该功能将删除所有JavaScript(以及VBScript和任何插件内容,例如Flash,Silverlight,ActiveX组件和Java Applet,它们可以在沙盒中运行的任意方式,通过网页接收的网页中与网页进行交互的代码)。 如果删除页面内容是“容易的部分”,那么获取可能隐藏此类内容的详尽清单可能是“困难的部分”。

当然,JavaScript可以通过各种方式包括其他JavaScript,例如向dom添加新的脚本元素。 这与我无关,因为如果我不考虑HTML和/或CSS可以引入JavaScript的所有方式,则不必担心JavaScript可以引入其他JavaScript。 (或者Flash可以导入JavaScript或JavaScript可以导入Flash内容等)

我确定页面可以包含JavaScript(或VBScript)的方式是:

  1. 脚本标记,可以是内联或具有外部文件的“ src =“属性。
  2. “ onload =”,“ onclick =”,“ onmouseover =”或其他“ on_event_ =”属性。
  3. 标记的“ href =“属性中的“ javascript:”网址。
  4. 有CSS'background-image:url(“ javascript:...”)'技巧(尽管并非在所有浏览器中都有效)。

我有一个问题是,是否需要担心标签上“ href =“属性以外的地方的“ javascript:” URL。 我知道某些较旧的浏览器(例如IE6)在img标签中的“ src =“属性中的“ javascript:” URL中执行JavaScript。 这与我无关,因为我没有编写要与IE6一样老的浏览器使用的拦截代理。 但是,如果还有其他可能在其中执行“ javascript:” URL的“棘手”位置,那是很好的了解。 (也许是在frame和iframe中的“ src =“属性?)

而且,当然,我可能没有考虑过执行JavaScript的其他任何方式。

我确定页面可以包含其他(沙盒包装)代码的方式是:

  1. 嵌入标签。
  2. 对象标签。
  3. 小程序标签。

我在这里有一个问题(可能被认为是“面向未来”),涉及WebAssembly字节码的加载方式。 只是我粗略的谷歌搜索还没有确定它是如何工作的。

尽管PDF可以在没有扩展名或任何扩展名的大多数现代浏览器中加载,但我认为PDF不在此问题范围之内,因为PDF可以包含任意(沙盒)代码,但这些代码无法与网页进行交互。

我还认为诸如HTML5视频之类的内容不在此问题范围内,因为它们不会运行任意代码。

我也不关心JavaScript或插件的执行方式是否需要浏览器扩展,除非该扩展被广泛使用。

但是,我确实希望此脚本和插件剥离功能具有强大的吸引力。 如果有人能够通过此功能使用棘手的措施来滑动代码,那么就我而言,可能采用的棘手措施与该问题有关。

并且,包含仅在某些浏览器中有效而在其他浏览器中无效的代码的方法也在范围内。

我上面没有考虑过的网页中是否可以包含其他类型的插件或语言?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM