程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 需要注意的幾個PHP漏洞小結

需要注意的幾個PHP漏洞小結

編輯:關於PHP編程

需要注意的幾個PHP漏洞
幾個重要的php.ini選項
  Register Globals
  php>=4.2.0,php.ini的register_globals選項的默認值預設為Off,當register_globals的設定為On時,程序可以接收來自服務器的各種環境變量,包括表單提交的變量,而且由於PHP不必事先初始化變量的值,從而導致很大的安全隱患.
  例1:
復制代碼 代碼如下:
  //check_admin()用於檢查當前用戶權限,如果是admin設置$is_admin變量為true,然後下面判斷此變量是否為true,然後執行管理的一些操作
  //ex1.php
  
  if (check_admin())
  {
  $is_admin = true;
  }
  if ($is_admin)
  {
  do_something();
  }
  ?>

  這一段代碼沒有將$is_admin事先初始化為Flase,如果register_globals為On,那麼我們直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以繞過check_admin()的驗證
  例2:
復制代碼 代碼如下:
  //ex2.php
  
  if (isset($_SESSION["username"]))
  {
  do_something();
  }
  else
  {
  echo "您尚未登錄!";
  }
  ?>

復制代碼 代碼如下:
  //ex1.php
  
  $dir = $_GET["dir"];
  if (isset($dir))
  {
  echo "";
  system("ls -al ".$dir);
  echo "";
  }
  ?>

 
 mixed eval(string code_str) //eval注入一般發生在攻擊者能控制輸入的字符串的時候
  //ex2.php
復制代碼 代碼如下:  
  $var = "var";
  if (isset($_GET["arg"]))
  {
  $arg = $_GET["arg"];
  eval("$var = $arg;");
  echo "$var =".$var;
  }
  ?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved