每天5分鐘,細讀PHP手冊-13

支持的協議和封裝協議
  • file:// — 訪問本地文件系統
  • http:// – https:// — 訪問 HTTP(s) 網址
  • ftp:// – ftps:// — 訪問 FTP(s) URLs
  • php:// — 訪問各個輸入/輸出流(I/O streams)
  • zlib:// – bzip2:// – zip:// — 壓縮流
  • data:// — 數據(RFC 2397)、
  • glob:// — 查找匹配的文件路徑模式
  • phar:// — PHP 歸檔
  • ssh2:// — Secure Shell 2
  • rar:// — RAR
  • ogg:// — 音頻流
  • expect:// — 處理交互式的流
doc_rootuser_dir
  • 可以通過配置文件內的 doc_root 或設置環境變量 PHP_DOCUMENT_ROOT 來定義 PHP 腳本主目錄。如果設置了該項,那麼 PHP 就只會解釋 doc_root 目錄下的文件,並確保目錄外的腳本不會被 PHP 解釋器執行(下面所說的 user_dir 除外);
  • 另一個可用的選項就是 user_dir。當 user_dir 沒有設置的時候,doc_root 就是唯一能控制在哪裏打開文件的選項。訪問如 http://my.host/~user/doc.php 這個 URL 時,並不會打開用戶主目錄下文件,而只會執行 doc_root 目錄下的 ~user/doc.php(這個子目錄以 [~] 作開頭);
  • 如果設置了 user_dir,例如 public_php,那麼像 http://my.host/~user/doc.php 這樣的請求將會執行用戶主目錄下的 public_php 子目錄下的 doc.php 文件。假設用戶主目錄的絕對路徑是 /home/user,那麼被執行文件將會是 /home/user/public_php/doc.php;
文件系統安全
  • PHP被設計成以用戶來級別來訪問文件系統,在Linux中一切皆文件,如果權限控制不當,則有越權攻擊的可能;
  • PHP中的null字符同C語言中的一樣,有截取字符串的作用,可以造成類似於SQL中的’;'SQL注入攻擊;
數據庫安全
  • 應用程序永遠不要使用超級用戶來鏈接數據庫;
  • 權限最小原則;
  • 事務可以使用數據庫的視圖、觸發器來實現,不建議全部使用業務代碼控制;
register_globals
  • PHP4.2開始,將register_global的默認值從on改爲了off。因爲該選項on的話,會默認將傳過來的參數加入到上下文中,如果不小心使用了該變量,則會造成不可預估的問題,例如越權;
  • 推薦使用 超全局變量而不要依賴 register_globals;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章