PHP程式碼審計-2、PHP程式碼審計之PHP環境簡介
這篇文章要跟大家分享的內容是php環境簡介,有興趣的朋友可以看一下,也可以給有需要幫助的同學一點參考
前言
程式碼在不同環境下執行的結果也會大不相同,可能就是因為一個設定問題,導致一個非常高危險的漏洞能夠利用;也可能你已經找到一個漏洞就因為你的設定問題,導致你弄了好久都無法建構成功的漏洞程式碼。然而,在不同的PHP版本中配置指令也會有不一樣的地方,新的版本可能會增加或刪除部分指令,改變指令預設設定或固定設定指令,因此,我們在程式碼審計之前需要非常熟悉PHP各個版本中設定檔的核心指令,才可以高效率的挖掘到高品質的漏洞。
PHP_INI_*常數
常數 | 意義 |
#PHP__INI__USER | #此設定選項可以再使用者的PHP腳本或Windows註冊表中設定 |
#PHP__INI__PERDIR | 該設定選項可以再php.ini ..htaccess或http.conf設定 |
# #PHP__INI__SYSTEM | |
#PHP__INI__ALL | |
php.ini only |
PHP的檔案指示多達數百項,這裡就不一一做介紹了,如果對這方面有興趣的話可以去PHP配置官方說明文件中查看具體內容: http://www.php. net/manual/zh/ini.list.php
PHP常見的基本設定
(1)open_basedir設定
open_basedir能限制應用程式能存取的目錄,檢查有沒有對open_basedir進行設置,當然有的透過web伺服器來設置,例如:apache的php_admin_value,nginx+fcgi透過conf來控制。
(2)allow_url_fopen設定
如果allow_url_fopen=ON,那麼PHP可以讀取遠端檔案進行操作,這個容易被攻擊者利用。
(3)allow_url_include設定
如果allow_url_include=ON,那麼PHP可以包含遠端文件,會導致嚴重漏洞。
(4)safe_mode_exec_dir設定
這個選項能控制php可呼叫的外部指令的目錄,如果php程式中有呼叫外部指令,那麼知道外部指令的目錄,能控製程式的風險。
(5)magic_quote_gpc設定
這個選項能轉義提交給參數中的特殊字符,建議設定magic_quote_gpc=ON
# (6)register_globals設定
開啟這個選項,將會導致PHP對所有外部提交的變數註冊為全域變量,後果相當嚴重。
(7)safe_mode設定
safe_mode是php的重要安全特性,建議開啟
(8)session_use_trans_sid設定
#如果啟動session_use_trans_sid,會導致PHP透過url傳遞會話ID,這樣會導致攻擊者容易劫持當前會話,或欺騙使用者使用已被攻擊者控制的現有會話。
(9)display_errors設定
如果啟動此選項,PHP將會輸出所有的錯誤或警告訊息,攻擊者能利用這些資訊來取得web根路徑等敏感資訊。
(10)expose_php設定
如果啟動expose_php選項,那麼由php解釋其產生的每個回應都會包含主機系統上所安裝的PHP版本。在了解遠端伺服器上執行的PHP版本後,攻擊者就能針對系統列舉已知的盜取手段,進而大幅增加成功發動攻擊的機會。
(11)magic_quotes_sybase(魔術引號自動過濾)
magic_quotes_sybase指令用於自動過濾特殊字符,當設定為on時,它會覆蓋掉magic_quotes_gpc=on的配置,也就是說,及時配置了gpc=on也是沒有效果的。 這個指令與gpc的共同點是處理的物件一致,也就是都是對POST\GET\Cookie進行處理。
(12)disable_functions(停用函數)
在正式的生產環境當中,為了更安全地執行PHP,也可以使用disable_functions指令來禁止一些敏感函數的使用。當你想用本指令禁止一些危險函數是,切記要把dl()函數也加入到禁止列表,因為攻擊者可以利用dl()函數來載入自訂的PHP擴充以突破disable_function指令的限制。
相關推薦:
以上是PHP程式碼審計-2、PHP程式碼審計之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)

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

MySQL函數可用於數據處理和計算。 1.基本用法包括字符串處理、日期計算和數學運算。 2.高級用法涉及結合多個函數實現複雜操作。 3.性能優化需避免在WHERE子句中使用函數,並使用GROUPBY和臨時表。

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

Composer是PHP的依賴管理工具,通過composer.json文件管理項目依賴。 1)解析composer.json獲取依賴信息;2)解析依賴關係形成依賴樹;3)從Packagist下載並安裝依賴到vendor目錄;4)生成composer.lock文件鎖定依賴版本,確保團隊一致性和項目可維護性。

在MySQL中配置字符集和排序規則的方法包括:1.設置服務器級別的字符集和排序規則:SETNAMES'utf8';SETCHARACTERSETutf8;SETCOLLATION_CONNECTION='utf8_general_ci';2.創建使用特定字符集和排序規則的數據庫:CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci;3.創建表時指定字符集和排序規則:CREATETABLEexample_table(idINT

typetraits在C 中用於編譯時類型檢查和操作,提升代碼的靈活性和類型安全性。 1)通過std::is_integral和std::is_floating_point等進行類型判斷,實現高效的類型檢查和輸出。 2)使用std::is_trivially_copyable優化vector拷貝,根據類型選擇不同的拷貝策略。 3)注意編譯時決策、類型安全、性能優化和代碼複雜性,合理使用typetraits可以大大提升代碼質量。
