所有javascript(和插件)都可以在网页中生存/隐藏?

时间:2017-05-21 01:48:30

标签: javascript html security web browser

我已经编写了一个拦截代理,我正致力于为其添加一项功能,其中删除了所有JavaScript(以及VBScript和任何插件内容,如Flash,Silverlight,ActiveX组件和Java Applet,可以从通过它接收的网页运行任意的,如果是沙盒的,与页面交互的代码。如果删除页面内容是简单的部分",那么获取这些内容可以隐藏的地方的详尽列表可能是“#34;难点”#。等等。

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

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

  1. 脚本标记,内联或带有" src ="外部文件的属性。
  2. " onload ="," onclick ="," onmouseover ="或其他" on_event _ ="属性。
  3. "的javascript:"网址在" href ="标签上的属性。
  4. CSS' background-image:url(" javascript:...")'技巧(尽管它并不适用于所有浏览器)。
  5. 我有一个问题是我是否需要担心" javascript:"网址不是" href ="标签上的属性。我知道一些旧的浏览器(例如IE6)在" javascript中执行JavaScript:"在" src ="中的网址img标签中的属性。这并不仅仅是因为我没有编写我的拦截代理以用于与IE6一样古老的浏览器。但如果还有其他的"棘手的"其中" javascript:"网址可能会被执行,这很有用。 (也许在框架和iframe" src ="属性?)

    当然,我还没有考虑过任何其他JavaScript执行方式。

    我识别出的页面可以包含其他(沙盒)代码的方式是:

    1. 嵌入代码。
    2. 对象标签。
    3. 小程序标签。
    4. 我在这里遇到的一个问题(这可能被认为是#34;面向未来")关于如何加载WebAssembly字节码。只是我粗略的谷歌搜索还没有确定它是如何工作的。

      虽然可以在没有扩展名或任何内容的大多数现代浏览器中加载PDF,但我认为PDF不在此问题的范围内,因为虽然它们可以包含任意(沙盒)代码,但此代码无法与网页互动。

      我还认为HTML5视频等问题超出了本问题的范围,因为它们不会运行任意代码。

      我也不关心JavaScript或插件可能执行哪些需要存在浏览器扩展的方法,除非所述扩展名被广泛使用。

      但是,我确实希望这个脚本和插件剥离功能是铁定的。如果有人能够通过这个功能使用棘手的措施来滑动代码,那么就我所关注的问题而言,可能采用的棘手措施与这个问题相关。

      并且,包含仅在某些浏览器中工作但不在其他浏览器中工作的代码的方法也在范围内。

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

0 个答案:

没有答案