2012-06-05 91 views
1

有什么办法来冻结document.body.innerHTML在JavaScript,使攻击者无法做到以下几点:有没有什么方法可以在JavaScript中冻结document.body.innerHTML?

<script>document.body.innerHTML = document.body.innerHTML.replace("http://www.example.com/" , "http://abc.org"); </script>

而且如何冻结document.location?谢谢!

+1

编号能够在页面上运行的代码可以对其执行任何操作。 – Pointy

+2

禁用JavaScript – timaschew

+1

@timaschew好的,这是可行的,但你无法控制从页面本身。换句话说,页面不能强制浏览器为自己禁用JavaScript。 – Pointy

回答

2

不,您不能从JavaScript中锁定DOM元素的内容。我怀疑你在这里问错了问题。你可能需要做的就是插入攻击者首先用来运行代码的任何漏洞。

  • 清理用户输入来剔除标签
  • 插入到从DB
  • 不允许HTML在任何输入标签页到应用程序

  • 消毒含量这将是一个很好的开始的地方。

  • 0

    没有JavaScript。这根本不可能。你的代码应该如何比其他任何东西更独占?

    简单的解决方案是编写一个安全页面,该页面对于XSS是不可卷的。解析来自外部的所有内容,并确保您的页面安全。

    您还可以尝试阻止您的网站使用X-Frame-Options标题加载到框架中。你可以使用这个内容的.htaccess文件来实现:

    <IfModule mod_headers.c> 
        # Secure frame optione 
        Header always append X-Frame-Options SAMEORIGIN 
    </IfModule> 
    
    1

    不,没有办法“冻结”它。您可以通过不在页面上包含第三方脚本来防止此问题。

    相关问题