DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 提升PHP安全:8個必須修改的PHP默認配置
提升PHP安全:8個必須修改的PHP默認配置
編輯:關於JavaScript     

很明顯,PHP+Mysql+Apache是很流行的web技術,這個組合功能強大,可擴展性強,還是免費的。然而,PHP的默認設置對已經上線的網站不是那麼適合。下面通過修改默認的配置文件加強PHP的安全策略!

0x01:禁用遠程url文件處理功能

像fopen的文件處理函數,接受文件的rul參數(例如:fopen('http://www.yoursite.com','r')).),這個功能可以很輕松的訪問遠程資源,然而,這是一個很重要的安全威脅,禁用這個功能來限制file function是個不錯的選擇,在php.ini文件中做如下修改:
復制代碼 代碼如下:
allow_url_fopen = Off

0x02:禁用注冊全局變量

php在4.2.0以前的版本中,用全局變量作為輸入,這個功能叫做register_globals,在web應用中它引起了很多安全問題,因為它允許攻擊者在一些情況下很容易的操作全局變量,幸運的是在4.2.0這個功能默認被禁用,它非常的危險,無論在什麼情況下都要禁用這個功能。如果某些腳本需要這個功能,那麼這個腳本就存在潛在的安全威脅。修改pnp.ini來禁用這個功能:

復制代碼 代碼如下:
register_globals = Off

0x03:限制php的讀寫操作

在很多web開發的過程中,php腳本需要向本地文件系統進行讀寫操作,比如/var/www/htdocs/files,為了加強安全,你可以修改本地文件的讀寫權限:
復制代碼 代碼如下:
open_basedir = /var/www/htdocs/files

0x04:Posing Limit

限制PHP的執行時間、內存使用量、post和upload的數據是最好的策略,可以做如下的配置:
復制代碼 代碼如下:
max_execution_time = 30  ; Max script execution time
max_input_time = 60      ; Max time spent parsing input
memory_limit = 16M       ; Max memory used by one script
upload_max_filesize = 2M ; Max upload file size
post_max_size = 8M       ; Max post size

0x05:禁用錯誤消息和啟用日志功能

在默認設置中,php會向浏覽器輸出錯誤消息,在應用程序的開發過程中,這個默認設置是最合理的配置,然而,它也可以向用戶洩漏一些安全信息,例如安裝路徑和用戶名。在已經開發完成的網站中,最好禁用錯誤消息然後把錯誤消息輸出到日志文件中。

復制代碼 代碼如下:
display_errors = Off
log_errors = On

0x06:隱藏PHP文件

 如果沒有隱藏PHP文件,我們可以通過多種方法獲取服務器PHP的版本,例如使用:http://www.example.com/script.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

顯然,我們不希望用戶可以直接獲取你網站服務器的PHP版本,幸運的是,在php.ini中有個開關可以禁用這個功能:
復制代碼 代碼如下:
expose_php = Off

0x07:安全模式配置

在默認的情況下,php可以配置為安全模式,在這種模式下,Apache禁止訪問文件、環境變量和二進制程序,在安全模式下,存在的最大問題就是只有文件的所有者才能訪問這寫PHP文件,如果有很多開發者共同開發這個程序,這樣的設置就不切實際,當你需要訪問一個PHP文件時就需要修改這個文件的所有者,另外一個問題就是其它程序也不能訪問這些PHP文件,下面的配置就可以修改文件的的權限為用戶組而不是單個用戶。
復制代碼 代碼如下:
safe_mode = Off
safe_mode_gid = On

通過啟用safe_mode_gid,能夠使用Apache的這個群組就能夠訪問PHP文件。安全模式對阻止二進制文件的執行也非常有效,然而,開發者卻希望在某些特定情形下能夠運行一些二進制文件。在這些特殊的情形下,可以將二進制文件放進一個目錄中,比如(/var/www/binaries),可以做如下設置:
復制代碼 代碼如下:
safe_mode_exec_dir = /var/www/binaries

最後,通過下面的設置,可以訪問服務器的環境變量,提供一個以”_“分割的前綴,這樣只能訪問具有規定前綴的環境變量:

復制代碼 代碼如下:
safe_mode_allowed_env_vars = PHP_

0x08:限制公共用戶對具有特定後綴名的文件的訪問

由於安全的原因,很多具有特定後綴名的文件不能被公共用戶所訪問,比如.inc後綴的文件,裡面包含了一些敏感的信息,比如mysql連接信息,如果沒有適當的配置,那麼每個用戶都能訪問這個配置文件,為了加強網站的安全,你需要在. .htaccess文件進行如下的配置:
復制代碼 代碼如下:
<filesmatch>
  Order allow,deny
  Deny from all
</filesmatch>

0x09:總結

PHP的默認配置是面向開發者的,如果網站面向廣大的用戶,建議重新配置PHP。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved