亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

PHP安全配置詳解

添加時間:2012-8-25 16:57:01  添加: 思海網絡 
 PHP勿庸置疑是非常強大的服務器端腳本語言,但是強大的功能總是伴隨著重大的危險,通過這章里,你將學習到使用PHP的安全模式來阻止一些PHP潛在的危險因素。

  【 安全模式 】

  PHP的安全模式提供一個基本安全的共享環境,在一個有多個用戶帳戶存在的PHP開放的Web服務器上。當一個Web服務器上運行的PHP打開了安全模式,那么一些函數將被完全的禁止,并且會限制一些可用的功能。

  [ 使用安全模式來強制限制 ]

  在安全模式下,一些嘗試訪問文件系統的函數功能將被限制。運行Web服務器用戶ID,如果想要操作某個文件,則必須擁有該文件讀取或者寫入的訪問權限,實現這個限制功能對于PHP來說是沒有問題的。

  在 安全模式開啟的時候,嘗試讀取或者寫入一個本地文件的時候,PHP將檢查當前訪問用戶是否是該目標文件的所有者。如果不是所有者,則該操作會被禁止。(寫 入權限:在較低級別的文件訪問權限下,可能會允許讀取或者寫入系統操作系統的文件,通過PHP的安全模式實現了防止你操作另外一個用戶文件的操作。當然, 一個Web服務器可能能夠訪問一個具有全局寫入權限的任意文件。)

  當安全模式打開的時候,以下函數列表的功能將會受到限制:

  chdir , move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink

  同樣的,一些PHP擴展中的函數也將會受到影響。(加載模塊:在安全模式下dl函數將被禁止,如果要加載擴展的話,只能修改php.ini中的擴展選項,在PHP啟動的時候加載)

  在PHP安全模式打開的時候,需要執行操作系統程序的時候,必須是在safe_mode_exec_dir選項指定目錄的程序,否則執行將失敗。即使允許執行,那么也會自動的傳遞給escapeshellcmd函數進行過濾。

  以下執行命令的函數列表將會受到影響:

  exec, shell_exec, passthru, system, popen

  另外,背部標記操作符(`)也將被關閉。

  當運行在安全模式下,雖然不會引起錯誤,但是 putenv 函數將無效。同樣的,其他一些嘗試改變PHP環境變量的函數set_time_limit, set_include_path 也將被忽略。

  [ 打開安全模式 ]

  打開或者關閉PHP的安全模式是利用php.ini中的safe_mode選項。如果要激活安全模式給當前所有共享Web服務器的用戶,只要設置配置選項為:safe_mode = On當函數在訪問文件系統的時候將進行文件所有者的檢查。缺省情況下,會檢查該文件所有者的用戶ID,當你能夠修改文件所有者的組ID(GID)為 safe_mode_gid 選項所指定的。如 果你有一個共享庫文件在你的系統上,當你碰到需要include或require的時候,那么你可以使用 safe_mode_include_dir 選項來設置你的路徑,保證你的代碼正常工作。(包含路徑: 如果你想要使用 safe_mode_include_dir 選項包含更多的包含路徑,那么你可以象 include_path 選項一樣,在Unix/Linux系統下使用冒號進行分割,在Windows下使用分號進行分割)比如你想要在安全模式下包含 /usr/local/include/php 下的文件,那么你可以設置選項為:safe_mode_include_dir = /usr/local/include/php如果你的包含的文件是需要執行的,那么你可以設置 safe_mode_exec_dir 選項。比如你需要 /usr/local/php-bin 路徑下的文件是可以執行的,那么可以設置選項為:safe_mode_exec_dir = /usr/local/php-bin(可執行:如果你執行的程序在 /usr/bin 目錄下,那么你可以把這些的二進制文件,連接到你指定選項下能夠執行的路徑)如果你想設置某些環境變量,那么可以使用 safe_mode_allowed_env_vars 選項。這個選項的值是一個環境變量的前綴,缺省是允許 PHP_ 開頭的環境變量,如果你想要改變,可以設置該選項的值,多個環境變量前綴之間使用逗號進行分割。比如下面允許時區的環境變量 TZ ,那么修改該選項的值為:safe_mode_allowed_env_vars = PHP_,TZ【 其他的安全特征 】除了安全模式以外,PHP還提供了許多其他許多特征來保證PHP的安全。

  [ 隱藏PHP ]

  你能夠在php.ini里使用 expose_php 選項來防止Web服務器泄露PHP的報告信息。如下:expose_php = On利用整個設置,你能夠阻礙一些來自自動腳本針對Web服務器的攻擊。通常情況下,HTTP的頭信息里面包含了如下信息:Server: Apache/1.3.33 (Unix) PHP/5.0.3 mod_ssl/2.8.16

  OpenSSL/0.9.7c在 expose_php 選項打開以后,PHP的版本信息將不包含在上面的頭信息里。當然,用戶訪問網站的時候同樣能夠看到 .php 的文件擴展名。如果你想整個的使用不同的文件擴展名,你需要在 httpd.conf 中找到如下這行:AddType application/x-httpd .php你就可以修改 .php 為任何你喜歡的文件擴展名。你能夠指定任意多個的文件擴展名,中間使用空格進行分割。如果你想在服務器端使用PHP來解析 .html 和 .htm 文件的時候,那么你設置選項如下:AddType application/x-httpd .html .htm(解析HTML:配置你的Web服務器使用PHP去解析所有的HTML文件,但是如果非服務器端代碼也需要PHP去解析,會影響服務器的性能。靜態頁面你可以使用不同的擴展名,這樣能夠消除對PHP腳本引擎的依賴,增強性能。)

  [ 文件系統安全 ]

  安全模式限制了腳本所有者只能訪問屬于自己的文件,但是你可以使用 open_basedir 選現來指定一個你必須訪問的目錄。如果你指定了一個目錄,PHP將拒絕訪問除了該目錄和該目錄子目錄的其他目錄。open_basedir 選項能夠工作在安全模式之外。限制文件系統只能訪問 /tmp 目錄,那么設置選項為:open_basedir = /tmp[ 函數訪問控制 ]你能夠在 disable_functions 選項中使用逗號分割來設定函數名,那么這些函數將在PHP腳本中被關閉。這個設置能夠工作在安全模式之外。disable_functions = dl當然,同樣的你能夠使用 disable_classes 選項來關閉對一些類的訪問。

  [ 數據庫安全 ]

  假設你的PHP腳本中包含一個基于表單值來執行的Mysql查詢:$sql = “UPDATE mytable SET col1 = ” .

關鍵字:服務器、PHP腳本、函數訪問控制

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站