最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在PHP中實(shí)現(xiàn)Javascript的escape()函數(shù)代碼

 更新時(shí)間:2010年08月08日 11:50:44   作者:  
在 Javascript 中,可以利用 escape/unescape() 和 eval_r() 函數(shù)進(jìn)行簡單的轉(zhuǎn)碼處理,讓普通的 URL 網(wǎng)址看起來比較怪異,使那些令人討厭的搜索爬蟲無法辨認(rèn)你希望隱藏的資源。
這里,一般都需要預(yù)先將正常的字符串編碼成 JavaScript unescape() 函數(shù)能夠解譯的格式,以 PHP 為例,可以使用以下函數(shù)實(shí)現(xiàn) Javascript 中 escape() 函數(shù)相同的功能:
復(fù)制代碼 代碼如下:

<?php
function escapeToHex($string, $encoding = UTF-8) {
$return = ;
for ($x = 0; $x < mb_strlen($string, $encoding); $x ++) {
$str = mb_substr($string, $x, 1, $encoding);
if (strlen($str) > 1) { // 多字節(jié)字符
$return .= %u . strtoupper(bin2hex(mb_convert_encoding($str, UCS-2, $encoding)));
} else {
$return .= % . strtoupper(bin2hex($str));
}
}
return $return;
}
?>

假設(shè)我們要隱藏以下地址:http://www.dirk.sh/assets/uploaded/thisistest.pdf
我們可以利用以下腳本實(shí)現(xiàn):
復(fù)制代碼 代碼如下:

<?php
// 請自行包含 escapeToHex() 函數(shù)定義
$test = document.write(\<a >test</a>\);
echo <script Language="Javascript">eval_r(unescape(" . escapeToHex($test) . "))</script>;
?>

如果你查看頁面源代碼,你會看到(因?yàn)樘L,所以進(jìn)行了手動分行,實(shí)際運(yùn)行結(jié)果應(yīng)該是完整的一行):
復(fù)制代碼 代碼如下:

<script Language="Javascript">eval_r(unescape("%64%6F%63%75%6D%65%6E%74%2E%77 \
%72%69%74%65%28%27%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77 \
%2E%64%69%72%6B%79%65%2E%6E%65%74%2F%75%70%6C%6F%61%64%65%64%2F%74%68%69%73 \
%69%73%74%65%73%74%2E%70%64%66%22%3E%74%65%73%74%3C%2F%61%3E%27%29"))</script>

而在瀏覽器中顯示的頁面,和普通 html 沒有分別。
注:
1、escapeToHex() 函數(shù)的第二個(gè)參數(shù)($encoding)表示你傳遞進(jìn)來的字符串的編碼,默認(rèn)是 UTF-8,如果你使用了其他編碼,應(yīng)該在調(diào)用函數(shù)的明確指定;
2、unescape() 在 ECMAScript v3 規(guī)范中被反對使用,該規(guī)范建議使用新的替代函數(shù) decodeURIComponent(),但我經(jīng)過測試發(fā)現(xiàn),decodeURIComponent()函數(shù)對多字節(jié)字符(中文)處理存在問題,所以仍然使用了 unescape() 函數(shù)。
3、原則上來說,上述方法只是為了防止搜索爬蟲獲取你認(rèn)為需要保密的資源地址,在支持 Javascript 的瀏覽器下瀏覽頁面,和沒有啟用這種保護(hù)機(jī)制情況下看到的呈現(xiàn)是完全相同的。

相關(guān)文章

  • PHP連接MongoDB示例代碼

    PHP連接MongoDB示例代碼

    這里采用默認(rèn)連接本機(jī)的27017端口,當(dāng)然你也可以連接遠(yuǎn)程主機(jī)如192.168.0.4:27017,如果端口是27017,端口可以省略
    2012-09-09
  • PHP防注入安全代碼

    PHP防注入安全代碼

    判斷傳遞的變量中是否含有非法字符我們把以下代碼放到一個(gè)公共的文件里,比如security.inc.php里面,每個(gè)文件里都include一下這個(gè)文件,那么就能夠給任何一個(gè)程序進(jìn)行提交的所有變量進(jìn)行過濾了,就達(dá)到了我們一勞永逸的效果。
    2008-04-04
  • PHP7常量數(shù)組用法分析

    PHP7常量數(shù)組用法分析

    這篇文章主要介紹了PHP7常量數(shù)組用法,結(jié)合實(shí)例形式分析了php7常量數(shù)組的功能、定義與使用方法,需要的朋友可以參考下
    2016-09-09
  • PHP實(shí)現(xiàn)貨幣換算的方法

    PHP實(shí)現(xiàn)貨幣換算的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)貨幣換算的方法,以實(shí)例形式較為詳細(xì)的講述了貨幣轉(zhuǎn)換的實(shí)現(xiàn)方法,并舉英鎊轉(zhuǎn)換美元為例講述具體用法,需要的朋友可以參考下
    2014-11-11
  • php生成隨機(jī)密碼的三種方法小結(jié)

    php生成隨機(jī)密碼的三種方法小結(jié)

    使用PHP開發(fā)應(yīng)用程序,尤其是網(wǎng)站程序,常常需要生成隨機(jī)密碼,如用戶注冊生成隨機(jī)密碼,用戶重置密碼也需要生成一個(gè)隨機(jī)的密碼。
    2010-09-09
  • 使用PHP計(jì)算兩個(gè)路徑的相對路徑

    使用PHP計(jì)算兩個(gè)路徑的相對路徑

    本篇文章是對用PHP計(jì)算兩個(gè)路徑的相對路徑進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql時(shí)區(qū)問題

    mysql時(shí)區(qū)問題

    表中有一個(gè)datetime字段是由服務(wù)器所在時(shí)區(qū)插入的當(dāng)前時(shí)間,能不能從sql語句中取出服務(wù)器所在的時(shí)區(qū)(如-8),如何在sql中把這個(gè)字段轉(zhuǎn)換成我想要的時(shí)區(qū)的時(shí)間
    2008-03-03
  • PHP curl 獲取響應(yīng)的狀態(tài)碼的方法

    PHP curl 獲取響應(yīng)的狀態(tài)碼的方法

    PHP curl可以從服務(wù)器端模擬一個(gè)http請求,例如抓取網(wǎng)頁、模擬登陸等,想要獲取狀態(tài)碼,需要在執(zhí)行curl_exec后再通過curl_getinfo來獲取
    2014-01-01
  • php寫入txt亂碼的解決方法

    php寫入txt亂碼的解決方法

    在本篇文章里小編給大家分享的是關(guān)于php寫入txt亂碼的知識點(diǎn)以及解決方法,有需要的朋友們參考下。
    2019-09-09
  • 讓你的網(wǎng)站首頁自動選擇語言轉(zhuǎn)跳

    讓你的網(wǎng)站首頁自動選擇語言轉(zhuǎn)跳

    讓你的網(wǎng)站首頁自動選擇語言轉(zhuǎn)跳...
    2006-12-12

最新評論

云阳县| 神池县| 河西区| 苗栗县| 嘉鱼县| 彰化市| 浙江省| 民权县| 桓台县| 山阳县| 从江县| 综艺| 杂多县| 板桥市| 高碑店市| 宾阳县| 凤阳县| 嘉荫县| 文化| 伊宁市| 皮山县| 岳普湖县| 右玉县| 博罗县| 木里| 贵港市| 龙江县| 江川县| 黄浦区| 乡城县| 永安市| 通道| 安义县| 日土县| 固阳县| 钟山县| 高雄县| 枞阳县| 上饶县| 水城县| 阳曲县|