国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 PHP開發(fā) 對php一些服務器端特性配置,加強php的安全

對php一些服務器端特性配置,加強php的安全

Dec 05, 2016 am 11:19 AM
linux nosql php php+mysql php服務器 web服務器 數(shù)據(jù)庫服務器

前面象Shaun Clowes和rfp等都比較詳細的介紹了php、cgi程序在編程過程中遇到 的問題,以及如何通過應用程序漏洞突破系統(tǒng),這篇文章我們來通過對php的一些?
服務器端特性來進行配置加強php的安全。寫 cgi腳本的時候我們的確一定注意各種安全問題,對用戶輸入進行嚴格的過濾,但是常在岸邊走哪有不濕鞋 ,吃燒餅哪有?
不 掉芝麻,人有失蹄馬有失手,連著名的phpnuke、phpMyAdmin等程序都出現(xiàn)過很嚴重的 問題,更何況象我等小混混寫的腳本。所以現(xiàn)在我們假設php腳本已經(jīng)出現(xiàn)嚴重問題,比如象前一陣子 phpnuke的可以上傳php腳本的大問題了,我們?nèi)绾瓮ㄟ^對服務器的配置使腳本出現(xiàn)如此問題也不能突破 系統(tǒng)。?

1、編譯的時候注意補上已知的漏洞?

從4.0.5開始,php的mail函數(shù)加入了第五個參數(shù),但它沒有好好過濾,使得php 應用程序能突破safe_mode的限制而去執(zhí)行命令。所以使用4.0.5和4.0.6的時候?
在編譯前我們需要修改php源碼包里 ext/standard/mail.c文件,禁止mail函數(shù)的第五參數(shù)或過濾shell字符。在mail.c 文件的第152行,也就是下面這行:?
if (extra_cmd != NULL) {?
后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);?
然后編譯php,那么我們就修補了這個漏洞。?

2、修改php.ini配置文件?

以php發(fā)行版的php.ini-dist為藍本進行修改。?
1)Error handling and logging?
在Error handling and logging部分可以做一些設定。先找到:?
display_errors = On?
php缺省是打開錯誤信息顯示的,我們把它改為:?
display_errors = Off?

關閉錯誤顯示后,php函數(shù)執(zhí)行錯誤的信息將不會再顯示給用戶,這樣能在一定程度上防止攻擊者從錯誤信息得知腳本的物理位置,以及一些其它有用的信息,起碼給攻擊者的黑箱檢測造成一定的障礙 。這些錯誤信息可能對我們自己有用,可以讓它寫到指定文件中去,那么修改以下:?
log_errors = Off?
改為:?
log_errors = On?

以及指定文件,找到下面這行:?
;error_log = filename?
去掉前面的;注釋,把filename改為指定文件,如?
/usr/local/apache/logs/php_error.log?

error_log = /usr/local/apache/logs/php_error.log?
這樣所有的錯誤都會寫到php_error.log文件里。?

2)Safe Mode?

php的safe_mode功能對很多函數(shù)進行了限制或禁用了,能在很大程度解決php的安全問題。在Safe Mode部分找到:
safe_mode = Off?
改為:?
safe_mode = On?

這 樣就打開了safe_mode功能。象一些能執(zhí)行系統(tǒng)命令的函數(shù)shell_exec()和``被禁止,其它的一些執(zhí)行函數(shù)如:exec(), system(), passthru(), popen()將被限制只能執(zhí)行safe_mode_exec_dir指定目錄下的程序。如果你實在是要執(zhí)行一些命令或程序,找到以下:?
safe_mode_exec_dir =?
指定要執(zhí)行的程序的路徑,如:?
safe_mode_exec_dir = /usr/local/php/exec?

然后把要用的程序拷到/usr/local/php/exec目錄下,這樣,象上面的被限制的函數(shù)還能執(zhí)行該目錄里的程序。?

關于安全模式下受限函數(shù)的詳細信息請查看php主站的說明:?
[url]http://www.php.net/manual/en/features.safe-mode.php[/url]?

3)disable_functions?

如果你對一些函數(shù)的危害性不太清楚,而且也沒有使用,索性把這些函數(shù)禁止了。找到下面這行:?
disable_functions =?
在”=“后面加上要禁止的函數(shù),多個函數(shù)用“,”隔開。?

3、修改httpd.conf?

如果你只允許你的php腳本程序在web目錄里操作,還可以修改httpd.conf文件限制php的操作路徑。比如你的web目錄是/usr/local/apache/htdocs,那么在?
httpd.conf里加上這么幾行:?

?
php_admin_value open_basedir /usr/local/apache/htdocs
?

這樣,如果腳本要讀取/usr/local/apache/htdocs以外的文件將不會被允許,如果錯誤顯示打開的話?

會提示這樣的錯誤:?
Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/apache/htdocs/open.php on line 4 等等。?

4、對php代碼進行編譯?

Zend對php的貢獻很大,php4的引擎就是用Zend的,而且它還開發(fā)了ZendOptimizer和ZendEncode等許多php的加強組件。優(yōu)化器ZendOptimizer只需在?[url]http://www.zend.com[/url]注冊就可以免?... 直鴝雜詬髯緣南低常?/a>?

ZendOptimizer-1[1].1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz?
ZendOptimizer-1[1].1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz?
ZendOptimizer-1[1].1.0-PHP_4.0.5-Solaris-sparc.tar.gz?
ZendOptimizer-1[1].1.0-PHP_4.0.5-Windows-i386.zip?


優(yōu)化器的安裝非常方便,包里面都有詳細的說明。以UNIX版本的為例,看清操作系統(tǒng),把包里的ZendOptimizer.so文件解壓到一個目錄,假設是/usr/local/lib?
下,在php.ini里加上兩句:?
zend_optimizer.optimization_level=15?
zend_extension="/usr/local/lib/ZendOptimizer.so"?

就可以了。用phpinfo()看到Zend圖標左邊有下面文字:?
with Zend Optimizer v1.1.0, Copyright (c) 1998-2000, by Zend Technologies?

那么,優(yōu)化器已經(jīng)掛接成功了。?
但是編譯器ZendEncode并不是免費的,這里提供給大家一個[url]http://www.PHPease.com[/url]的馬勇設計 ... 糜諫桃的康模胗?/a>?[url]http://www.zend.com[/url]聯(lián)系取得許可協(xié)議。?

php腳本編譯后,腳本的執(zhí)行速度增加不少,腳本文件只能看到一堆亂碼,這將阻止攻擊者進一步分析服務器上的腳本程序,而且原先在php腳本里以明文存儲的口令也得到了保密,如mysql的口令。不過在服務器端改腳本就比較麻煩了,還是本地改好再上傳吧。?


5、文件及目錄的權(quán)限設置?

web 目錄里除了上傳目錄,其它的目錄和文件的權(quán)限一定不能讓nobody用戶有寫 權(quán)限。否則,攻擊者可以修改主頁文件,所以web目錄的權(quán)限一定要設置好。還有,php腳本的屬主千萬不能是root,因為safe_mode下讀文件的 函數(shù)被限制成被讀文件的屬主必須和當前執(zhí)行腳本的屬主是一樣才能被讀,否則如果錯誤顯示打開的話會顯示諸如以下的錯誤:?

Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not allowed to access /etc/passwd owned by uid 0 in /usr/local/apache/htdocs/open.php on line 3?
這樣我們能防止許多系統(tǒng)文件被讀,比如:/etc/passwd等。?

上傳目錄和上傳腳本的屬主也要設成一樣,否則會出現(xiàn)錯誤的,在safe_mode下這些要注意。?

6、mysql的啟動權(quán)限設置?


mysql要注意的是不要用root來啟動,最好另外建一個mysqladm用戶。可以在 /etc/rc.local等系統(tǒng)啟動腳本里加上一句:?
su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"?

這樣系統(tǒng)重啟后,也會自動用mysqladmin用戶啟動mysql進程。?

7、日志文件及上傳目錄的審核及?

查看日志和人的惰性有很大關系,要從那么大的日志文件里查找攻擊痕跡有些大海撈針,而且也未必有。 web上傳的目錄里的文件,也應該經(jīng)常檢查,也許程序有問題,用戶傳上了一些非法的文件,比如執(zhí)行腳本等。?

8、操作系統(tǒng)自身的補丁?

一樣,給系統(tǒng)打已知漏洞的補丁是系統(tǒng)管理員最基本的職責,這也是最后一道防線。?


經(jīng)過以上的配置,雖然說不上固若金湯,但是也在相當程度上給攻擊者的測試造成很多麻煩,即使php腳本程序出現(xiàn)比較嚴重的漏洞,攻擊者也無法造成實際性的破壞。

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 Jul 27, 2025 am 04:31 AM

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

PHP中的對象關聯(lián)映射(ORM)性能調(diào)整 PHP中的對象關聯(lián)映射(ORM)性能調(diào)整 Jul 29, 2025 am 05:00 AM

避免N 1查詢問題,通過提前加載關聯(lián)數(shù)據(jù)來減少數(shù)據(jù)庫查詢次數(shù);2.僅選擇所需字段,避免加載完整實體以節(jié)省內(nèi)存和帶寬;3.合理使用緩存策略,如Doctrine的二級緩存或Redis緩存高頻查詢結(jié)果;4.優(yōu)化實體生命周期,定期調(diào)用clear()釋放內(nèi)存以防止內(nèi)存溢出;5.確保數(shù)據(jù)庫索引存在并分析生成的SQL語句以避免低效查詢;6.在無需跟蹤變更的場景下禁用自動變更跟蹤,改用數(shù)組或輕量模式提升性能。正確使用ORM需結(jié)合SQL監(jiān)控、緩存、批量處理和適當優(yōu)化,在保持開發(fā)效率的同時確保應用性能。

用PHP和RabbitMQ建造彈性微服務 用PHP和RabbitMQ建造彈性微服務 Jul 27, 2025 am 04:32 AM

要構(gòu)建彈性的PHP微服務,需使用RabbitMQ實現(xiàn)異步通信,1.通過消息隊列解耦服務,避免級聯(lián)故障;2.配置持久化隊列、持久化消息、發(fā)布確認和手動ACK以確??煽啃裕?.使用指數(shù)退避重試、TTL和死信隊列安全處理失??;4.通過supervisord等工具守護消費者進程并啟用心跳機制保障服務健康;最終實現(xiàn)系統(tǒng)在故障中持續(xù)運作的能力。

為PHP創(chuàng)建準備生產(chǎn)的Docker環(huán)境 為PHP創(chuàng)建準備生產(chǎn)的Docker環(huán)境 Jul 27, 2025 am 04:32 AM

使用正確的PHP基礎鏡像并配置安全、性能優(yōu)化的Docker環(huán)境是實現(xiàn)生產(chǎn)就緒的關鍵。1.選用php:8.3-fpm-alpine作為基礎鏡像以減少攻擊面并提升性能;2.通過自定義php.ini禁用危險函數(shù)、關閉錯誤顯示并啟用Opcache及JIT以增強安全與性能;3.使用Nginx作為反向代理,限制訪問敏感文件并正確轉(zhuǎn)發(fā)PHP請求至PHP-FPM;4.采用多階段構(gòu)建優(yōu)化鏡像,移除開發(fā)依賴,設置非root用戶運行容器;5.可選Supervisord管理多個進程如cron;6.部署前驗證無敏感信息泄

VSCODE設置。JSON位置 VSCODE設置。JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位于用戶級或工作區(qū)級路徑,用于自定義VSCode設置。1.用戶級路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級路徑:項目根目錄下的.vscode/settings

深入了解PHP的內(nèi)部垃圾收集機制 深入了解PHP的內(nèi)部垃圾收集機制 Jul 28, 2025 am 04:44 AM

PHP的垃圾回收機制基于引用計數(shù),但循環(huán)引用需靠周期性運行的循環(huán)垃圾回收器處理;1.引用計數(shù)在變量無引用時立即釋放內(nèi)存;2.循環(huán)引用導致內(nèi)存無法自動釋放,需依賴GC檢測并清理;3.GC在“可能根”zval達閾值或手動調(diào)用gc_collect_cycles()時觸發(fā);4.長期運行的PHP應用應監(jiān)控gc_status()、適時調(diào)用gc_collect_cycles()以避免內(nèi)存泄漏;5.最佳實踐包括避免循環(huán)引用、使用gc_disable()優(yōu)化性能關鍵區(qū)及通過ORM的clear()方法解引用對象,最

無服務器革命:使用BREF部署可擴展的PHP應用程序 無服務器革命:使用BREF部署可擴展的PHP應用程序 Jul 28, 2025 am 04:39 AM

Bref使PHP開發(fā)者能無需管理服務器即可構(gòu)建可擴展、成本高效的應用。1.Bref通過提供優(yōu)化的PHP運行時層,將PHP帶入AWSLambda,支持PHP8.3等版本,并與Laravel、Symfony等框架無縫集成;2.部署步驟包括:使用Composer安裝Bref,配置serverless.yml定義函數(shù)和事件,如HTTP端點和Artisan命令;3.執(zhí)行serverlessdeploy命令即可完成部署,自動配置APIGateway并生成訪問URL;4.針對Lambda限制,Bref提供解決

在PHP中構(gòu)建不變的物體,并具有可讀的屬性 在PHP中構(gòu)建不變的物體,并具有可讀的屬性 Jul 30, 2025 am 05:40 AM

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

See all articles