日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php disable classes,PHP安全配置基础教程(3)

發(fā)布時(shí)間:2025/3/21 php 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php disable classes,PHP安全配置基础教程(3) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

解決方法:

要求程序員對(duì)所有用戶提交的要放到SQL語句的變量進(jìn)行過濾。

即使是數(shù)字類型的字段,變量也要用單引號(hào)擴(kuò)起來,MySQL自己會(huì)把字串處理成數(shù)字。

在MySQL里不要給PHP程序高級(jí)別權(quán)限的用戶,只允許對(duì)自己的庫(kù)進(jìn)行操作,這也避免了程序出現(xiàn)問題被 select INTO OUTFILE … 這種攻擊。

8、警告及錯(cuò)誤信息

PHP默認(rèn)顯示所有的警告及錯(cuò)誤信息:

error_reporting = E_ALL & ~E_NOTICE

display_errors = On

在平時(shí)開發(fā)調(diào)試時(shí)這非常有用,可以根據(jù)警告信息馬上找到程序錯(cuò)誤所在。

正式應(yīng)用時(shí),警告及錯(cuò)誤信息讓用戶不知所措,而且給攻擊者泄漏了腳本所在的物理路徑,為攻擊者的進(jìn)一步攻擊提供了有利的信息。而且由于自己沒有訪問到錯(cuò)誤的地方,反而不能及時(shí)修改程序的錯(cuò)誤。所以把PHP的所有警告及錯(cuò)誤信息記錄到一個(gè)日志文件是非常明智的,即不給攻擊者泄漏物理路徑,又能讓自己知道程序錯(cuò)誤所在。

修改php.ini中關(guān)于Error handling and logging部分內(nèi)容:

error_reporting = E_ALL

display_errors = Off

log_errors = On

error_log = /usr/local/apache/logs/php_error.log

然后重啟apache,注意文件/usr/local/apache/logs/php_error.log必需可以讓nobody用戶可寫。

9、disable_functions

如果覺得有些函數(shù)還有威脅,可以設(shè)置php.ini里的disable_functions(這個(gè)選項(xiàng)不能在httpd.conf里設(shè)置),比如:

disable_functions = phpinfo, get_cfg_var

可以指定多個(gè)函數(shù),用逗號(hào)分開。重啟apache后,phpinfo, get_cfg_var函數(shù)都被禁止了。建議關(guān)閉函數(shù)phpinfo, get_cfg_var,這兩個(gè)函數(shù)容易泄漏服務(wù)器信息,而且沒有實(shí)際用處。

10、disable_classes

這個(gè)選項(xiàng)是從PHP-4.3.2開始才有的,它可以禁用某些類,如果有多個(gè)用逗號(hào)分隔類名。disable_classes也不能在httpd.conf里設(shè)置,只能在php.ini配置文件里修改。

11、open_basedir

前面分析例程的時(shí)候也多次提到用open_basedir對(duì)腳本操作路徑進(jìn)行限制,這里再介紹一下它的特性。用open_basedir指定的限制實(shí)際上是前綴,不是目錄名。也就是說 “open_basedir = /dir/incl” 也會(huì)允許訪問 “/dir/include” 和 “/dir/incls”,如果它們存在的話。如果要將訪問限制在僅為指定的目錄,用斜線結(jié)束路徑名。例如:”open_basedir = /dir/incl/”。

可以設(shè)置多個(gè)目錄,在Windows中,用分號(hào)分隔目錄。在任何其它系統(tǒng)中用冒號(hào)分隔目錄。作為Apache模塊時(shí),父目錄中的open_basedir路徑自動(dòng)被繼承。

四、其它安全配置

1、取消其它用戶對(duì)常用、重要系統(tǒng)命令的讀寫執(zhí)行權(quán)限

一般管理員維護(hù)只需一個(gè)普通用戶和管理用戶,除了這兩個(gè)用戶,給其它用戶能夠執(zhí)行和訪問的東西應(yīng)該越少越好,所以取消其它用戶對(duì)常用、重要系統(tǒng)命令的讀寫執(zhí)行權(quán)限能在程序或者服務(wù)出現(xiàn)漏洞的時(shí)候給攻擊者帶來很大的迷惑。記住一定要連讀的權(quán)限也去掉,否則在linux下可以用/lib/ld- linux.so.2 /bin/ls這種方式來執(zhí)行。

如果要取消某程如果是在chroot環(huán)境里,這個(gè)工作比較容易實(shí)現(xiàn),否則,這項(xiàng)工作還是有些挑戰(zhàn)的。因?yàn)槿∠恍┏绦虻膱?zhí)行權(quán)限會(huì)導(dǎo)致一些服務(wù)運(yùn)行不正常。PHP的mail函數(shù)需要/bin/sh去調(diào)用sendmail發(fā)信,所以/bin/bash的執(zhí)行權(quán)限不能去掉。這是一項(xiàng)比較累人的工作,

2、去掉apache日志其它用戶的讀權(quán)限

apache的access-log給一些出現(xiàn)本地包含漏洞的程序提供了方便之門。通過提交包含PHP代碼的URL,可以使access-log包含PHP代碼,那么把包含文件指向access-log就可以執(zhí)行那些PHP代碼,從而獲得本地訪問權(quán)限。

如果有其它虛擬主機(jī),也應(yīng)該相應(yīng)去掉該日志文件其它用戶的讀權(quán)限。

當(dāng)然,如果你按照前面介紹的配置PHP那么一般已經(jīng)是無法讀取日志文件了。

總結(jié)

以上是生活随笔為你收集整理的php disable classes,PHP安全配置基础教程(3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。