<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 會盡快

    幾何變換  回復  更多評論   


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


    網站導航:
     
    主站蜘蛛池模板: 国产1000部成人免费视频| 大胆亚洲人体视频| 在线观看亚洲电影| 久久国产亚洲精品麻豆| 色窝窝免费一区二区三区| 美女一级毛片免费观看| 亚洲AV日韩AV永久无码绿巨人 | 亚洲天堂一区二区三区四区| 国产精品久久久久久久久久免费| 人人爽人人爽人人片av免费| 久久狠狠高潮亚洲精品| 亚洲国产精品国产自在在线| 日韩在线播放全免费| 亚欧乱色国产精品免费视频| 亚洲影视自拍揄拍愉拍| 国产偷国产偷亚洲清高动态图| 成人女人A级毛片免费软件| 男女一边桶一边摸一边脱视频免费| 亚洲国产精品免费在线观看| 亚洲精品无码专区2| 国产精品成人免费一区二区| 免费国产成人午夜在线观看| 精品久久久久亚洲| 亚洲成人免费网址| 亚洲精品无码永久在线观看你懂的| 夫妻免费无码V看片| 久久99热精品免费观看牛牛| 特a级免费高清黄色片| jiz zz在亚洲| 亚洲精品视频免费看| 久久亚洲精品视频| 久久久久亚洲爆乳少妇无| 永久中文字幕免费视频网站| 成人免费在线看片| 污污网站免费观看| 在线视频网址免费播放| 免费看黄网站在线看| 日韩亚洲综合精品国产| 亚洲日韩精品国产一区二区三区| 亚洲精品中文字幕麻豆| 亚洲日本在线看片|