首頁 > php教程 > PHP开发 > php 應用程式安全防範技術研究

php 應用程式安全防範技術研究

黄舟
發布: 2016-12-14 13:38:54
原創
1169 人瀏覽過

PHP安全防範程式模型

複製程式碼程式碼如下:
  /* PHP防注入跨站V1.0 
  在您的頁上方新增: require(“menzhi_injection.php”);以及XSS跨站漏洞。
  ##################缺陷以及改進################## 
  程式還有很多缺陷,希望大家能幫助改進 
  ###################參考以及鳴謝################# 
  Neeao'ASP SQL通用防注入程式V3.0 
  部分程式碼參考自Discuz! 
  */ 
  error_reporting(0); 
  define('MAGIC_QUOTES_$PC); jection="'|;|and|(|)|exec|insert |select|delete|update|count|*|%|chr|mid|master|truncate|or|char|declare"; 
  $menzhi_injection = explode("|",$menzhi_injection); , '_POST', '_COOKIE','_REQUEST') as $_request) { 
  foreach($$_request as $_key => $_value) { 
  // value = strlower($_value
  // value = strlower($_value } != '_' && $$_key = daddslashes($_value); 
  foreach($menzhi_injection as $kill_key => $kill_value) { 
  ; 
  unset($_value); 
  exit(); 
  } 
  } 
  //echom " } 
  function daddslashes($string) { 
  if(!MAGIC_QUOTES_GPC) { 
  if( is_array($string)) { 
  foreach($string as $key => $val) { 
  $string[$key] = daddslashes($val); 〠 }＀〠〠〠〠〠〠〣〜〠〠〣〠〣〠〠〣〜〠〠〠〣 〜〠〠〣〠〣〣 〜〠〠〠〠〠〣 〠〣 〜〠〠〠〠〣〣〣 〜〠〣)$. string) ; 
  } 
  } 
  $string = preg_replace('/&((#(d{3,5}|x[a-fA-F0-9]{4}));)/', '&\1' ,str_replace(array('&', '"', ''), array('&', '"', ''), $string)); 
  return $string ; 
  } 
  ?>

  使用說明 
  在您的頁面頂部添加:「require(“menzhi_injection.php”);” ,即可實現通用跨站,"require(“menzhi_injection.php”);” ,即可實現通用跨站,注入通用跨站。呼叫本程序,我們使用require() 而不使用include() ,因為require()呼叫檔案如果出錯,將終止程序運行,include()並不理會。且require()呼叫檔案時,程式一運行,會先呼叫外本檔案。而inculde()則是運行到該行時才開始執行。基於函數特性,我們選擇require()。 您還可以根據實際需要自行增加或刪除$menzhi_injection變數中的過濾字符,來達到更好的防禦效果。 再者您可以自行修改程式碼,或許會有意外收穫。普通注射都可以防禦,以下測試僅供調侃,以下是對一句話木馬的測試效果:
嘿嘿,動心了就在您的頁面頂部調用吧。記住是“require(“menzhi_injection.php”);”哦。這只是提起大家興趣的噱頭,請自行測試吧。 
  缺陷以及待改進 
  由於此程序只是外部調用,只是處理了外部提交的變量,並沒有對您的應用程序作系統分析,所以存在很多局限性,請謹慎使用。 對於使用GBK編碼的程序,還存在雙位元組編碼漏洞風險,本程序雖然可以處理該漏洞。但遏止這些漏洞,還是需要從根源做起。需要處理資料庫連接文件,我們可以新增 character_set_client=binary 。 Discuz!7.0的資料庫連接類別db_mysql.class.php寫的就非常不錯,大家可以參考借鏡。當然這些並不是這個小程式所能涉及的範疇。 
  且此程式並沒有過濾 $_SERVER $_ENV $_FILES系統變數。例如對於$_SERVER['HTTP_X_FORWARDED_FOR']系統取得IP時,駭客可以透過劫持修改HTTP原始請求包來變更其值,而本程式是可以處理這些漏洞。但是身為程式設計師我們需要的是從根源就對外部變數處理,防患於未然,未雨綢繆吧。 
  程序很潦草,歡迎大家測試使用,有什麼意見建議可以留言討論。 
  結束語 
  最後祝大家學習有成,工作順利,想要獲取更多的相關文章請關注PHP中文網(www.php.cn)!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板