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

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

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

    Java世界

    學(xué)習(xí)筆記

    常用鏈接

    統(tǒng)計

    積分與排名

    天籟村

    新華網(wǎng)

    雅虎

    最新評論

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

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

     

    解決方案

     

    第一。過濾

     

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

    第二。用asii 碼替換

     

    如 <  >  ! 等 

     

    第三 。 用 element.innerText 顯示用戶數(shù)據(jù)

     

     這樣要寫大量的 js

    第四。 使用 <xmp>

    <xmp>標(biāo)簽不解析內(nèi)部的html元素,而且不執(zhí)行內(nèi)部的javascript腳本代碼

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

     

    第五。通過 frame 來防止 數(shù)據(jù)頁面攻擊 主頁面

     使用 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;

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

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

    </script>
    <body>
    為了避免XSS跨站攻擊,在大多數(shù)html編輯器的設(shè)計中,都是要將用戶輸入的HTML內(nèi)容進(jìn)行過濾。過濾代碼繁瑣暫且不說,關(guān)鍵是不能保證考慮到所有已知和未知的攻擊類型。
    <br />
    如果我們能設(shè)計一個iframe的單向訪問模型,就可以讓用戶輸入的HTML內(nèi)容在受控的環(huán)境中執(zhí)行,也就不需要再進(jìn)行過濾了。
    <br />
    舉例來說,我們html編輯器所在的主頁面為a,嵌入一個iframe為b。a可以訪問b的內(nèi)容,而b卻不能訪問a的內(nèi)容。這樣的話,b中的HTML內(nèi)容即使包含攻擊代碼,也無法發(fā)揮作用了。
    <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;

                //響應(yīng)frame1的onload事件
                function frame1_onload()
                {    
                    //舊的domain
                    var sDomainOld=document.domain;
                    
                    //降級domain
                    document.domain="pimshell.com";
                    
                    //保存frame1的document
                    oDocument=frame1.document;
                    
                    //恢復(fù)domain
                    document.domain=sDomainOld;
                    
                    //準(zhǔn)備就緒
                    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 攻擊 解決方案(轉(zhuǎn)載) 2013-09-16 11:06 whh

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

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

    楳土ffwerwerwer  回復(fù)  更多評論   

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

    幾何變換  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲宅男天堂在线观看无病毒| 亚洲一区二区精品视频| 日韩a级无码免费视频| 午夜亚洲国产精品福利| 亚洲综合久久精品无码色欲| 91精品国产亚洲爽啪在线影院| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲国产成人久久笫一页| 免费H网站在线观看的| a级在线观看免费| 三上悠亚在线观看免费| 又粗又长又爽又长黄免费视频 | 亚洲国产午夜福利在线播放 | 亚洲欧美日韩综合俺去了| 亚洲中文字幕人成乱码| 国产精品亚洲自在线播放页码| 亚洲AV日韩AV永久无码免下载| 久久精品国产亚洲麻豆| 亚洲视频在线观看| 亚洲午夜成激人情在线影院| 最新国产精品亚洲| 全部在线播放免费毛片| a成人毛片免费观看| 日本人的色道免费网站| 国产不卡免费视频| 亚洲精品无码高潮喷水在线| 中文字幕亚洲第一在线| 亚洲AV永久无码精品一福利| 亚洲免费日韩无码系列| 五月婷婷在线免费观看| 精品亚洲一区二区三区在线观看 | 国内少妇偷人精品视频免费| 国产精品免费观看| 国产成人精品日本亚洲专区 | 永久免费AV无码网站在线观看| 亚洲午夜精品一级在线播放放| 亚洲精品成人片在线播放| ASS亚洲熟妇毛茸茸PICS| a在线观看免费网址大全| xvideos亚洲永久网址| 亚洲人成电影网站久久|