簡體   English   中英

將HTML轉換為document.write javascript

[英]Convert Html to document.write javascript

我看到一個網頁,當我嘗試查看源代碼時,只看到一條JavaScript語句。 我搜尋了一下,無法弄清楚他們是如何做到的。 你可以做,看看自己。

該網頁是: 奇怪的頁面

當我查看源代碼時,我只會看到下面類似的內容,也看起來像是評論:

<script type='text/javascript' language='Javascript'>
<!--document.write(unescape('%3C%2........................
................

他們是如何做到的? 我如何更改網頁,以便當有人查看源代碼時看起來像那樣?

本文可能有助於弄清楚那里發生了什么。

基本上,該公司使用標准的轉義字符對整個頁面進行了編碼。 如果將位從unencode(...)一直復制到倒數第二個括號,然后將其粘貼到瀏覽器控制台,您將看到實際的HTML內容。

如果您查看我鏈接的頁面的源代碼,則會看到將普通文本轉換為所有轉義字符的函數:

// CONVERTS *ALL* CHARACTERS INTO ESCAPED VERSIONS.
function escapeTxt(os){
    var ns='';
    var t;
    var chr='';
    var cc='';
    var tn='';
    for(i=0;i<256;i++){
        tn=i.toString(16);
        if(tn.length<2)tn="0"+tn;
        cc+=tn;
        chr+=unescape('%'+tn);
    }
    cc=cc.toUpperCase();
    os.replace(String.fromCharCode(13)+'',"%13");
    for(q=0;q<os.length;q++){
        t=os.substr(q,1);
        for(i=0;i<chr.length;i++){
            if(t==chr.substr(i,1)){
                t=t.replace(chr.substr(i,1),"%"+cc.substr(i*2,2));
                i=chr.length;
            }
        }
    ns+=t;
    }
    return ns;
}

發生的事情幾乎聽起來像是。 服務器只提供一個<script>元素,其中包含HTML注釋,以使不支持JS的瀏覽器更容易(請在此處了解更多信息: Javascript為什么會忽略單行HTML注釋? ),並且在注釋中進行了編寫到文檔的字符串的未轉義版本,即轉義發送的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM