提升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檔案進行如下的設定:
Order allow,deny
Deny from all
0x09:總結
PHP的預設配置是面向開發者的,如果網站面向廣大的用戶,建議重新配置PHP。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

隨著網路的不斷發展,越來越多的業務涉及線上互動以及資料的傳輸,這就不可避免地引起了安全問題。其中最常見的攻擊手法之一就是身分偽造攻擊(IdentityFraud)。本文將詳細介紹PHP安全防護中如何防範身分偽造攻擊,以保障系統能有更好的安全性。什麼是身分偽造攻擊?簡單來說,身分偽造攻擊(IdentityFraud),也就是冒名頂替,是指站在攻擊者

隨著Web應用程式的日益普及,安全審計也變得越來越重要。 PHP是一種廣泛使用的程式語言,也是許多網頁應用程式的基礎。本文將介紹PHP中的安全審計指南,以協助開發人員編寫更安全的Web應用程式。輸入驗證輸入驗證是Web應用程式中最基本的安全特性之一。雖然PHP提供了許多內建函數來對輸入進行過濾和驗證,但這些函數並不能完全保證輸入的安全性。因此,開發人員需要

如何解決PHP開發中的安全漏洞和攻擊面PHP是常用的Web開發語言,然而在開發過程中,由於安全問題的存在,很容易被駭客攻擊和利用。為了確保網路應用程式的安全性,我們需要了解並解決PHP開發中的安全漏洞和攻擊面。本文將介紹一些常見的安全漏洞和攻擊方式,並給出具體的程式碼範例來解決這些問題。 SQL注入SQL注入是指透過在使用者輸入中插入惡意的SQL程式碼,從而以

隨著網路技術的發展,網路安全問題越來越受到關注。其中,跨站腳本攻擊(Cross-sitescripting,簡稱XSS)是常見的網路安全隱患。 XSS攻擊是基於跨站點腳本編寫,攻擊者將惡意腳本注入網站頁面,透過欺騙使用者或透過其他方式植入惡意程式碼,獲取非法利益,造成嚴重的後果。然而,對於PHP語言開發的網站來說,避免XSS攻擊是一項極為重要的安全措施。因

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

PHP和Typecho的最佳實踐:建立安全可靠的網站系統【引言】如今,網路已成為人們生活的一部分。為了滿足使用者對網站的需求,開發人員需要採取一系列安全措施來建立安全可靠的網站系統。 PHP是一種廣泛使用的開發語言,Typecho是一種優秀的部落格程序,本文將介紹如何結合PHP和Typecho的最佳實踐,建立安全可靠的網站系統。 【1.輸入驗證】輸入驗證是構建

PHP程式碼重構並修復常見安全漏洞導語:由於PHP的靈活性和易用性,它成為了一個廣泛使用的伺服器端腳本語言。然而,由於缺乏正確的編碼和安全意識,許多PHP應用程式存在各種安全漏洞。本文旨在介紹一些常見的安全漏洞,並分享一些PHP程式碼重構和修復漏洞的最佳實務。 XSS攻擊(跨站腳本攻擊)XSS攻擊是最常見的網路安全漏洞之一,攻擊者透過在網路應用程式中插入惡意腳本

隨著網路的快速發展,網路攻擊的數量和頻率也不斷增加。其中,惡意BOT攻擊是一種非常常見的網路攻擊方式,它透過利用漏洞或弱密碼等方式,獲取網站後台登入信息,然後在網站上執行惡意操作,如篡改數據、植入廣告等。因此,對於使用PHP語言開發的網站來說,加強安全防護措施,特別是在防止惡意BOT攻擊方面,就顯得非常重要。一、加強口令安全口令安全是防範惡意BOT攻擊的
