PHP開發中保險防範知識

來源:互聯網
上載者:User
PHP開發中安全防範知識
PHP代碼安全和XSS,SQL注入等對於各類網站的安全非常中用,尤其是UGC(User Generated Content)網站,論壇和電子商務網站,常常是XSS和SQL注入的重災區。這裡簡單介紹一些基本編程要點, 相對系統安全來說,php安全防範更多要求編程人員對使用者輸入的各種參數能更細心.

  php編譯過程中的安全

  建議安裝Suhosin補丁,必裝安全補丁

  php.ini安全設定

  register_global = off

  magic_quotes_gpc = off

  display_error = off

  log_error = on

  # allow_url_fopen = off

  expose_php = off

  open_basedir =

  safe_mode = on

  disable_function = exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source,get_cfg_var

  safe_mode_include_dir =

  DB SQL預先處理

  mysql_real_escape_string (很多PHPer仍在依靠addslashes防止SQL注入,但是這種方式對中文編碼仍然是有問題的。addslashes的問題在於駭客可以用 0xbf27來代替單引號,GBK編碼中0xbf27不是一個合法字元,因此addslashes只是將0xbf5c27,成為一個有效多位元組字元,其 中的0xbf5c仍會被看作是單引號,具體見這篇文章)。用mysql_real_escape_string函數也需要指定正確的字元集,否則依然可能 有問題。

  prepare + execute(PDO)

  ZendFramework可以用DB類的quote或者quoteInto, 這兩個方法是根據各種資料庫實施不用方法的,不會像mysql_real_escape_string只能用於mysql

  使用者輸入的處理

  無需保留HTML標籤的可以用以下方法

  strip_tags, 刪除string中所有html標籤

  htmlspecialchars,只對”<”,”>”,”;”,”’”字元進行轉義

  htmlentities,對所有html進行轉義

  必須保留HTML標籤情況下可以考慮以下工具:

  HTML Purifier: HTML Purifier is a standards-compliant HTML filter library written in PHP.

  PHP HTML Sanitizer: Remove unsafe tags and attributes from HTML code

  htmLawed: PHP code to purify & filter HTML

  上傳檔案

  用is_uploaded_file和move_uploaded_file函數,使用HTTP_POST_FILES[]數組。並通過去掉上傳目錄的PHP解釋功能來防止使用者上傳php指令碼。

  ZF架構下可以考慮使用File_upload模組

  Session,Cookie和Form的安全處理

  不要依賴Cookie進行核心驗證,重要訊息需要加密, Form Post之前對傳輸資料進行雜湊, 例如你發出去的form元素如下:





  POST回來之後對參數進行驗證

  $str = "";

  foreach($_POST['H'] as $key=>$value) {

  $str .= $key.$value;

  }

  if($_POST['hash'] != md5($str.$secret)) {

  echo "Hidden form data modified"; exit;

  }

  PHP安全偵查工具(XSS和SQL Insertion)

  Wapiti - Web application security auditor(Wapiti - 小巧的網站漏洞偵查工具) (SQL injection/XSS攻擊檢查工具)

  安硯/使用方法:

  apt-get install libtidy-0.99-0 python-ctypes python-utidylib

  python wapiti.py http://Your Website URL/ -m GET_XSS

  Pixy: XSS and SQLI Scanner for PHP( Pixy - PHP 源碼缺陷分析工具)

  安硯: apt-get install default-jdk
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.