<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java世界

    學習筆記

    常用鏈接

    統計

    積分與排名

    天籟村

    新華網

    雅虎

    最新評論

    防止 XSS 攻擊 解決方案(轉載)

    XSS又叫CSS英文縮寫為Cross Site Script
    中文意思為跨站腳本攻擊
    具體內容指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,
    嵌入其中Web里面的html代碼會被執行,從而達到惡意用戶的特殊目的.

     

    解決方案

     

    第一。過濾

     

    過濾 標簽 等字符 ,但是這樣 對用戶是不公平的。

    第二。用asii 碼替換

     

    如 <  >  ! 等 

     

    第三 。 用 element.innerText 顯示用戶數據

     

     這樣要寫大量的 js

    第四。 使用 <xmp>

    <xmp>標簽不解析內部的html元素,而且不執行內部的javascript腳本代碼

    但是要防止攻擊代碼在數據中間插入</xmp>從而繞過保護

     

    第五。通過 frame 來防止 數據頁面攻擊 主頁面

     使用 document.domain 屬性 來控制

     

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>測試iframe的單向訪問</title>
        <style>
            body
            {
             font-size:12px;
            }
        </style>
    </head>
    <script language="javascript">

    //frame1的document
    var oDocument=null;

    //響應frame1的onload事件
    function frame1_onload()
    {    
        //舊的domain
        var sDomainOld=document.domain;
        
        //降級domain
        document.domain="pimshell.com";
        
        //保存frame1的document
        oDocument=frame1.document;
        
        //恢復domain
        document.domain=sDomainOld;
        
        //準備就緒
        button1.disabled=false;
    }

    //改變IFrame的背景顏色
    function changebackcolor()
    {
        if(oDocument.body.style.backgroundColor=="")
            oDocument.body.style.backgroundColor="blue";
        else
            oDocument.body.style.backgroundColor="";
    }

    </script>
    <body>
    為了避免XSS跨站攻擊,在大多數html編輯器的設計中,都是要將用戶輸入的HTML內容進行過濾。過濾代碼繁瑣暫且不說,關鍵是不能保證考慮到所有已知和未知的攻擊類型。
    <br />
    如果我們能設計一個iframe的單向訪問模型,就可以讓用戶輸入的HTML內容在受控的環境中執行,也就不需要再進行過濾了。
    <br />
    舉例來說,我們html編輯器所在的主頁面為a,嵌入一個iframe為b。a可以訪問b的內容,而b卻不能訪問a的內容。這樣的話,b中的HTML內容即使包含攻擊代碼,也無法發揮作用了。
    <br />
    <br />
    <table>
    <tr>
    <td width="300px;" valign="top">
        <iframe src="http://bb.pimshell.com/pimshell/test/b.htm" id="frame1" onload="frame1_onload();"></iframe>
        <br />
        <br />
        <button id="button1" onclick="changebackcolor();" disabled>--&gt; 改變IFrame的背景顏色</button>
    </td>
    <td valign="top">
        iframe中的代碼:
        <br />
        <pre style="background-color:whitesmoke; border:dashed 1px black; padding:4px;">
            &lt;script language="javascript"&gt;

            //domain
            document.domain="pimshell.com";

            //訪問主頁面試試看
            function geta()
            {
                alert(parent.document.body.innerHTML);
            }

            &lt;/script&gt;    
        </pre>
        <br />
        主頁面中的代碼:
        <br />
        <pre style="background-color:whitesmoke; border:dashed 1px black; padding:4px;">
            &lt;script language="javascript"&gt;

                //frame1的document
                var oDocument=null;

                //響應frame1的onload事件
                function frame1_onload()
                {    
                    //舊的domain
                    var sDomainOld=document.domain;
                    
                    //降級domain
                    document.domain="pimshell.com";
                    
                    //保存frame1的document
                    oDocument=frame1.document;
                    
                    //恢復domain
                    document.domain=sDomainOld;
                    
                    //準備就緒
                    button1.disabled=false;
                }

                //改變IFrame的背景顏色
                function changebackcolor()
                {
                    if(oDocument.body.style.backgroundColor=="")
                        oDocument.body.style.backgroundColor="blue";
                    else
                        oDocument.body.style.backgroundColor="";
                }

            &lt;/script&gt;
        </pre>
    </td>
    </tr></table>
    </table>



    </div>

    </body>
    </html>

    posted on 2012-08-13 14:08 Rabbit 閱讀(6512) 評論(3)  編輯  收藏

    評論

    # re: 防止 XSS 攻擊 解決方案(轉載) 2013-09-16 11:06 whh

    <img onerror=”alert(123)”src=http:// www.2cto.com>  回復  更多評論   

    # re: 防止 XSS 攻擊 解決方案(轉載) 2013-12-26 17:22 <a href=# onclick=\"document.location=\'ht

    楳土ffwerwerwer  回復  更多評論   

    # re: 防止 XSS 攻擊 解決方案(轉載)"/><script>alert(document.cookie)</script><!-- 2014-05-07 14:14 會盡快

    幾何變換  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费在线观看视频网站| 99免费在线观看视频| 韩国日本好看电影免费看| 亚洲欧洲日本在线观看| 拍拍拍又黄又爽无挡视频免费| 亚洲午夜电影一区二区三区| 黄在线观看www免费看| 免费大片av手机看片高清| 四虎永久成人免费| 男人和女人高潮免费网站| 国产成人麻豆亚洲综合无码精品| 亚洲视频小说图片| 四虎免费影院ww4164h| 亚洲国产午夜精品理论片 | 亚洲精品视频免费在线观看| 曰批全过程免费视频播放网站| 亚洲视频欧洲视频| 麻豆国产入口在线观看免费| 日本一区二区在线免费观看 | 亚洲综合色丁香麻豆| 69xx免费观看视频| 亚洲精品国产suv一区88| 亚洲成av人在片观看| 久久青草精品38国产免费| 亚洲一级片在线播放| 免费v片视频在线观看视频| 999zyz**站免费毛片| 亚洲黄色免费电影| 国产免费变态视频网址网站| 国产免费区在线观看十分钟| 91情国产l精品国产亚洲区 | 免费日韩在线视频| 色www永久免费| 激情五月亚洲色图| 亚洲综合精品网站在线观看| 精品国产亚洲一区二区三区在线观看 | 免费A级毛片在线播放| 亚洲欧洲无码一区二区三区| 精品国产亚洲男女在线线电影| 最近中文字幕国语免费完整| 国产成人 亚洲欧洲|