PHP中urldecode二次解碼

2021-09-09 05:25:52 字數 640 閱讀 8430

urldecode是php中的乙個解碼函式,之所以會出現二次解碼問題,是因為當php在處理提交的資料時,本身會先進行一次url解碼,再遇到urldecode函式,就會出現二次解碼問題。

那麼二次解碼會帶來什麼隱患捏?首先就是sql注入問題,設想你輸入一串:

?id = 1%2527

這條語句一般情況下不會被過濾掉,但是在php中,首先php把%25解碼成了?id = 1%27,然後urldecode函式再次解碼即變成 ?id = 1』,從而實現單引號注入。

可以看bugku上的一道例題:

<?phpif(

eregi

("hackerdj"

,$_get

[id]))

$_get

[id]

=urldecode

($_get

[id]);

if($_get

[id]

=="hackerdj"

)?>

通過將hackerdj中的乙個或兩個字母編碼即可繞過:

?id = h%2561ckerdj(其中%61是字母a的url編碼值)

urldecode二次編碼

if eregi hackerdj get id get id urldecode get id if get id hackerdj 定義 語法 eregi pattern,string 傳入的id值,不能等於hackerdj 傳入的id值再經過urldecode解碼 如果此時,id值等於hack...

php為什麼二次開發,PHP二次開發容易嗎?

php二次開發容易嗎?php二次開發容易嗎?我們工作室,專門致力於php二次開發,成立不到一年時間內接到了很多php二次開發的活,其中,ecshop至多數。phpcms php168 dedecms shopex等都成為了我們開發的物件,我們的工作是但凡是php的產品都可以二次開發新增功能。其實二次...

基本實驗 PHP二次渲染

首先是前端 upload.html 後端 upload.php if isset post upload else else else 實驗過程 首先選擇一張lena圖,在末端寫入一句話後門 最終儲存格式為jpg 檢視它的檔案原始碼 上傳 結果瀏覽器中顯示 此時,在程式的同路徑下的upload資料夾...