PHP高階玩法

2022-02-01 02:27:39 字數 2568 閱讀 3798

1. 刪除不必要的模組。

php隨帶內建的php模組。它們對許多任務來說很有用,但是不是每個專案都需要它們。只要輸入下面這個命令,就可以檢視可用的php模組:

# php - m
一旦你檢視了列表,現在可以刪除不必要的模組。減少模組的數量有助於提高你所處理的web應用程式的效能和安全

2. 限制php資訊洩露。

平台洩露關鍵資訊司空見慣。比如說,php會洩露一些資訊,比如版本以及它安裝到伺服器上的事實。這可以通過expose_php命令來實現。為了防止洩露,你需要在/etc/php.d/security.ini中將該命令設成off。

expose_php=off
如果你需要了解版本及其狀態,只要針對**位址執行乙個簡單的curl命令就可以獲得該資訊。

curl - i
之前的命令會返回下列資訊:

3.禁用遠端**執行.

遠端**執行是php安全系統方面的常見安全漏洞之一。預設情況下,遠端**執行在你的系統上已被啟用。「allow_url_fopen」命令允許請求(require)、包括(include)或可識別url的fopen包裝器等函式可以直接訪問php檔案。遠端訪問通過使用http或ftp協議來實現,會導致系統無力防禦**注入安全漏洞。

為了確保你的系統安全可靠、遠離遠端**執行,你可以將該命令設成「off」,如下所示:

allow_url_fopen=off 

allow_url_include=off 

4. 將php錯誤記入日誌。

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,  

shell_exec,system,proc_open,popen,curl_exec,

curl_multi_exec,parse_ini_file,show_source

你可以在此(進一步了解禁用危險的php函式。

7. 上傳檔案。

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伺服器。比如說,使用者可能上傳證書,然後傳送到web瀏覽器以便處理。一切都執行順暢,直到有一天黑客企圖傳送龐大的檔案來耗盡伺服器資源。這很可能會導致伺服器崩潰或響應緩慢。為了保護伺服器遠離這個漏洞,就需要設定post大小。post大小可以在/etc/php.d/security.ini檔案裡面加以設定。

post_max_size=1k

Apache Geode 更多高階玩法

apache geode 乙個高效的快取 資料管理平台,被廣泛運用於金融等各個領域,12306 是乙個典型的代表。apache geode 支援很多種玩法,你可以通過 gfsh 去啟動服務搭建集群,也可以通過嵌入我們的應用,搭建應用與資料平台的集合體。apache geode 整合到 spring ...

Vim的幾個高階玩法

在linux中編輯檔案的場景非常之多,掌握一些關鍵命令和技巧。能夠大大提高效率,使用體驗也順暢很多。1976年由bill joy完成編寫vi,並由bsd發布。從2006年開始,作為 單一unix規範 的一部分,vi或vi的一種變形版本一定會在類unix系統中找到。vim是vi的乙個變形版本,功能更加...

PHP非同步的玩法

php是世界上最好的語言,但是總被 同行們 吐槽不支援非同步。其實我們要實現非同步也非常簡單,之前看到鳥哥的一篇寫php非同步執行的博文 php實現非同步呼叫方法研究,這篇文章還是08年的,到今天php發展快10年了,對於非同步呼叫也有了更多新的玩法。一是通過渲染前端頁面,使用js執行ajax,這種...