程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> php漏洞php後門淺析以及防范措施

php漏洞php後門淺析以及防范措施

編輯:PHP基礎知識
 

前一排服務器被放了後門 入侵者居然大白天在服務器上面打包整站程序。

這周總結了部分php安全方面的知識,就算淺薄,權當亡羊補牢也好,先記下來,以供日後參考。
php.ini 設置
1、

disable_functions =

phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec

,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,

pfsockopen,openlog,syslog,rea dlink,symlink,popepassthru,stream_socket_server,

get_current_user,leak,putenv,popen,opendir

這類函數能禁止就禁止
2.如果可以的話,設置“safe_mode”為“on”
3.禁止“open_basedir” 可以禁止指定目錄之外的文件操作
4.expose_php設為off 這樣php不會在http文件頭中洩露信息
5.設置“allow_url_fopen”為“off” 可禁止遠程文件功能
6.“log_errors”設為“on” 錯誤日志開啟

php編碼方面 要注意的問題如下:

1.要有“用戶提交的信息皆危險”的意識 所有用戶提交的信息 不管是表單傳的 post get 或是其他形式提交的數據 都要單獨寫個過濾函數處理一遍,養成習慣,用戶提交的 都用這個函數過一遍,主要是過濾特殊字符,strip_tags很有效, 如果沒有get_magic_quotes_gpc 要用這個函數mysql_real_escape_string再過濾一遍,確保安全,當然有特殊要求的,大可自己再弄嚴格點的過濾過程。這一步做好了,可大大減少代碼出現漏洞的機會。
 

2.檢查程序邏輯的漏洞,不要犯低級的邏輯錯誤。

3.如果懷疑程序被放了後門 大可先檢查有沒有一句話木馬 eval($_POST[ 全站搜索php代碼有沒有這樣的源代碼,有的話,幾乎可以斷定會出問題!

4.平時php文件要命名規范 至少讓自己可以一目了然,哪些php文件名字有問題

5.如用開源代碼,有補丁出來的話,盡快打上補丁。

6.如果攻擊者拿到了服務器的最高權限,有可能通過修改服務器的配置文件php.ini來達到他們隱藏後門的目的,前幾年比較流行。原理如下:
php.ini 裡面的這兩個配置項:auto_prepend_file ,auto_append_file 可以讓php解析前,自己加點東西進去 Automatically add files before or after any PHP document
如果被配置了eval()函數的後門 那就很陰險了,php文件代碼裡面查不出,只會在php解析前包含eval()函數進來 並且因為是全局的 所以所有php頁面都是後門!
所以要先確認auto_prepend_file ,auto_append_file沒被配置成其他東西,才進行第3點的源代碼檢查。

7.兩個查後門的實用linux命令:

#找出/data/web/website/目錄下 35分鐘前新建的php
find /data/web/website/ -iname *.php -mtime -35
#找出/data/web/website/ 裡面源碼包含eval($_POST[的php文件
find /data/web/website/ -name "*.php" | xargs grep "eval($_POST["
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved