當前位置:編程學習大全網 - 源碼下載 - 這段php代碼是什麽意思?

這段php代碼是什麽意思?

整個代碼用於過濾惡意註入。

if(isset($ _ REQUEST[' GLOBALS '])| | isset($ _ FILES[' GLOBALS ']))exit('請求被拒絕');

當提交惡意的全局變量時,這壹行被攔截。

@ set _ magic _ quotes _ runtime(0);

$ MQG = get _ magic _ quotes _ GPC();

下面是閱讀系統環境變量。

foreach(array('_POST ',' _GET ',' _COOKIE') as $__R) {

這是壹個新數組,上面有三個值。

if(isset($$__R)) {

foreach($ $ _ _ R as $ _ _ k = & gt;$__v) {

if(isset($ $ _ _ k)amp;& amp$ $ _ _ k = = $ _ _ v)unset($ $ _ _ k);

}

我想這是最難的部分。。$__R在第壹個循環中,值是_POST後跟壹個$,即$_POST。

如果$_POST已經賦值了,這就有點多余了,因為它是壹個內置變量,必須存在。

然後把$$__R當做$_POST $_GET什麽的,把$_POST的每個值拆分成$__V,索引存放在$ _ _ k,如果有$ _ POST[' a ']= ' b ';那麽$__K是a,$ _ _ v是b,下面是同壹個意思。

如果$($__K),也就是$a已經存在,並且這個變量的值和POST now的值相同,那麽原來的變量就會被取消。只保留POST中的變量。

也就是說,如果代碼原來有$a='b ',現在提交了壹個$ _ POST[' a ']= ' b ';現在刪除原$a,保留後壹個。這是用來在別人已經成功註入的變量的時候,殺死這些變量的。

如果(!$ MQG)$ $ _ _ R = daddslashs($ $ _ _ R);

上面這個是檢查環境變量和魔術引號是否打開,如果沒有,過濾整個$_POST(GET COOKIE)。

$ $ _ _ R = strip _ SQL($ $ _ _ R);

$ $ _ _ R = dsafe($ $ _ _ R);

上面兩個是自定義濾鏡,好像是過濾SQL註入什麽的。原理同上

}

}

  • 上一篇:運算器的基本理論
  • 下一篇:職場精英是如何經營人脈的?
  • copyright 2024編程學習大全網