推薦Linux管理員不可不知十大PHP安全要點
PHP是使用最廣泛的腳本程式語言之一。市佔率頗能說明其主導地位。 PHP 7已推出,這個事實讓這種程式語言對目前的開發人員來說更具吸引力。儘管出現了一些變化,但是許多開發人員對PHP的未來持懷疑態度。一個原因是PHP的安全。
Linux管理員不可不知十大PHP安全要點
PHP是使用最廣泛的腳本程式語言之一。市佔率頗能說明其主導地位。 PHP 7已推出,這個事實讓這種程式語言對目前的開發人員來說更具吸引力。儘管出現了一些變化,但是許多開發人員對PHP的未來持懷疑態度。一個原因是PHP的安全。
PHP的安全是廣大開發人員擔心的主要問題。雖然PHP提供從裡到外的可靠安全,但需要由開發人員正確地落實這些安全機制。我們在本文中將為Linux管理員介紹幾個PHP安全要點。這些要點將幫助你確保Web應用程式安全,並確保從長遠來看正常運作。
在我們開始之前,有必要先了解我們要處理的系統。出於演示的需要,我們使用Fedora。然而,這些要點應該適用於Ubuntu版本或其他任何Linux發行版。查看你操作系統發行版的使用手冊,即可了解更多。
不妨仔細看幾個我們系統環境的關鍵檔案。你的檔案應該類似或對應以下:
預設的網頁伺服器:Apache
DocumentRoot:/var/www/html
PHP設定檔:/etc/php.ini
/php設定目錄:/etc/php .d/
安全文件:/etc/php.d/security.ini
這些技巧將保護你的網站,避免不同類型的常見攻擊,例如SQL注入、XSS、跨站請求偽造攻擊、eval()和文件上傳等攻擊。可在此(https://www.sitepoint.com/top-10-php-security-vulnerabilities/)查看常見攻擊清單。
1. 刪除不必要的模組。
PHP隨附的php模組。它們對許多任務很有用,但是不是每個項目都需要它們。只要輸入下面這個指令,就可以查看可用的PHP模組:
# php - m
一旦你查看了列表,現在可以刪除不必要的模組。減少模組的數量有助於提高你所處理的Web應用程式的效能和安全性。
2. 限制PHP資訊外洩。
平台洩漏關鍵資訊司空見慣。比如說,PHP會洩漏一些訊息,例如版本以及它安裝到伺服器上的事實。這可以透過expose_php命令來實現。為了防止洩露,你需要在/etc/php.d/security.ini將該指令設為off。
expose_php=Off
如果你需要了解版本及其狀態,只要針對網站位址執行一個簡單的Curl指令就可以獲得該資訊。
Curl - I http://www.kubiji.cn/index.php
之前的指令會回傳下列資訊:
HTTP/1.1 200 OK
X-Powered-By::20.10 Content-type: text/html; charset=UTF-8
3. 停用遠端程式碼執行。
遠端程式碼執行是PHP安全系統的常見安全漏洞之一。預設情況下,遠端程式碼執行在你的系統上已啟用。 「allow_url_fopen」指令允許請求(require)、包括(include)或可識別URL的fopen包裝器等函數可以直接存取PHP檔。遠端存取透過使用HTTP或FTP協定來實現,會導致系統無力防禦程式碼注入安全漏洞。
為了確保你的系統安全可靠、遠離遠端程式碼執行,你可以將該指令設為“Off”,如下:
Allow_url_fopen=Off
allow_url_include=Off
。
加強Web應用程式安全的另一個簡單方法是,不要向訪客顯示錯誤。這將確保駭客根本無法危及網站的安全性。需要在/etc/php.d/security.ini檔案裡面進行編輯。
display_errors=Off
現在你可能會想:完成這一步驟後,「開發人員在沒有錯誤訊息的幫助下如何調試?」開發人員可以使用log_errors指令來用於調試。他們只需要在security.ini檔案中將log_errors指令設為「On」。
log_errors=On
error_log=/var/log/httpd/php_scripts_error.log
5. 合理控制資源。
為了確保應用程式的安全,控制資源很重要。為了確保適當的執行和安全,你就要對PHP腳本執行予以限制。此外,也應該對花在解析請求資料上的時間加以限制。如果執行時間受到控制,腳本使用的記憶體等其他資源也應該會相應配置。所有這些度量指標可透過編輯security.ini檔案來管理。
# set in seconds
max_execution_time = 25
max_input_time = 25
memory_limit = 30M
6. 停用危險的PHP函數
PHP隨帶用於開發的實用函數,但也有可能被駭客用來闖入Web應用程式的大量函數。停用這些函數可以提高整體安全性,並確保你沒有受到危險的PHP函數的影響。
為此,你要先編輯php.ini檔案。一旦進入該文件,找到disable_functions指令,停用裡面的危險函數。為此,你只要拷貝/貼上下列程式碼。
disable_functions =exec,passthru,
disable_functions - php-functions-must-be-disabled/)進一步了解已停用危險的PHP函數。
7. 上傳檔案。
如果你的應用程式不需要上傳任何文件,停用上傳文件的功能有助於提高安全性。想禁止使用者上傳文件,只需編輯/etc/php.d/目錄下的security.ini文件,將file_uploads指令設為OFF。
file_uploads=Off
8. 保持版本最新。
開發人員在24/7不間斷地工作,並為你使用的技術打上補丁。 PHP也是一樣。由於它有一個開源社區,補丁和修正版定期發布。更新版也為首日漏洞及其他安全漏洞提供了安全性修補程式。如果你專注於應用程式的安全性,就要隨時確保你的PHP解決方案是最新版本。另外,給其他相關技術打上最新的補丁可以確保最大限度的安全。
9.控製檔案系統存取。
預設情況下,PHP可使用fopen()等函數來存取檔案。 open_basedir指令提供了存取。首先,始終要將open_basedir指令設為/var/www/html目錄。將它設成其他任何目錄會導致安全性問題。
open_basedir="/var/www/html/"
10. 控制POST大小。
我們的最後一個PHP安全要點是控制POST大小函數。 HTTP POST函數使用客戶端的瀏覽器,將資料傳送到Web伺服器。比如說,使用者可能會上傳證書,然後發送到網頁瀏覽器以便處理。一切都運作順暢,直到有一天駭客企圖發送龐大的檔案來耗盡伺服器資源。這很可能會導致伺服器崩潰或回應緩慢。為了保護伺服器遠離這個漏洞,就需要設定POST大小。 POST大小可以在/etc/php.d/security.ini檔案裡面加以設定。
post_max_size=1k
結論
安全是廣大Web開發人員和Linux管理員最關心的問題之一。如果採取了上述要點,你勢必可以加強開發環境和PHP Web應用程式的安全。要是你認為我們遺漏了重要的內容,歡迎留言補充。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
