2012-06-05 128 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

    不,沒有辦法「凍結」它。您可以通過不在頁面上包含第三方腳本來防止此問題。

    相關問題