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

首頁 後端開發(fā) php教程 透過對php一些伺服器端特性的配置來加強php的安全性_PHP教程

透過對php一些伺服器端特性的配置來加強php的安全性_PHP教程

Jul 21, 2016 pm 04:09 PM
php 加強 安全 伺服器 透過 配置


透過對php一些伺服器端特性的配置加強php的安全

by san@xfocus.org

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

1、編譯的時候注意補上已知的漏洞
?從4.0.5開始,php的mail函數(shù)加入了第五個參數(shù),但它沒有好好過濾,使得php應(yīng)用程式能突破
?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__cm ;然後編譯php
?那我們就修補了這個漏洞。

2、修改php.ini設(shè)定檔
?以php發(fā)行版的php.ini-dist為藍本進行修改。
?1)Error handling and logging
?在Error handling and logging部分可以做一些設(shè)定。先找到:
?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
像一些能執(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
?然後把要用的程式拷到/usr/local/php/exec目錄下,這樣,像上面的被限制的函數(shù)還能執(zhí)行該目錄
?裡的程式。
?關(guān)於安全模式下受限函數(shù)的詳細資訊請參閱php主站的說明:
?http://www.php.net/manual/en/features.safe-mode.php
?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/ >?等等。

4、對php程式碼進行編譯
?Zend對php的貢獻很大,php4的引擎就是用Zend的,而且它還開發(fā)了ZendOptimizer和ZendEncode
?等許多php的加強組件。優(yōu)化器ZendOptimizer只需在http://www.zend.com註冊就可以免費得到,
?下面幾個是用於4.0.5和4.0.6的ZendOptimizer,文件名分別對於各自的系統(tǒng):
?ZendOptimizer-1.1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz
?ZendOptimizer-1.1.0-PHP_4.0.5-LinZendOptimizer-1.1.0-PHP_4.0.5-Linux_glibc21-i58o. .0-PHP_4.0.5-Solaris-sparc.tar.gz
?ZendOptimizer-1.1.0-PHP_4.0.5-Windows-i386.zip
?優(yōu)化器的安裝非常方便,包裡面都有詳細的包裝說明。以UNIX版本的為例,看清作業(yè)系統(tǒng),把包包裡的
?ZendOptimizer.so檔案解壓縮到一個目錄,假設(shè)是/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並不是免費的,這裡提供給大家一個http://www.PHPease.com的馬勇設(shè)計的
?編譯器外殼,如果用於商業(yè)目的,請與http: //www.zend.com聯(lián)絡(luò)取得授權(quán)協(xié)議。
?php腳本編譯後,腳本的執(zhí)行速度增加不少,腳本檔案只能看到一堆亂碼,這將阻止攻擊者進一步分析服
?務(wù)器上的腳本程序,而且原先在php腳本裡以明文儲存的口令也得到了保密,如mysql的口令。不過在服
?務(wù)器端改腳本就比較麻煩了,還是本地改好再上傳吧。

5、檔案及目錄的權(quán)限設(shè)定
?web目錄裡除了上傳目錄,其它的目錄和檔案的權(quán)限一定不能讓nobody使用者有寫權(quán)限。否則,攻擊者可
?以修改主頁文件,所以web目錄的權(quán)限一定要設(shè)定好。
?還有,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 0ed by uid in /usr/local/apache/htdocs/open.php
?on line 3
?這樣我們能防止許多系統(tǒng)檔案被讀,例如:/etc/passwd等。
?上傳目錄和上傳腳本的屬主也要設(shè)成一樣,否則會出現(xiàn)錯誤的,在safe_mode下這些要注意。

6、mysql的啟動權(quán)限設(shè)定
?mysql要注意的是不要用root來啟動,最好另外建一個mysqladm用戶??梢栽?etc/rc.local等系統(tǒng)
?啟動腳本裡面加上一句:
?su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"
?這樣系統(tǒng)重開機後,也會自動用mysqladmin用戶啟動mysql進程。

7、日誌檔案及上傳目錄的審核及
?查看日誌和人的惰性有很大關(guān)係,要從那麼大的日誌檔案裡查找攻擊痕跡有些大海撈針,而且也未必有。
?web上傳的目錄裡的文件,也應(yīng)該經(jīng)常檢查,也許程式有問題,使用者傳上了一些非法的文件,例如執(zhí)行腳
?本等。

8、作業(yè)系統(tǒng)本身的修補程式
?一樣,給系統(tǒng)打已知漏洞的修補程式是系統(tǒng)管理員最基本的職責(zé),這也是最後一道防線。
?
經(jīng)過以上的配置,雖然說不上固若金湯,但是也在相當程度上給攻擊者的測試造成很多麻煩,即使php腳本程
序出現(xiàn)比較嚴重的漏洞,攻擊者也無法造成實際性的破壞。
如果您還有更古怪,更變態(tài)的配置方法,希望能一起分享分享;) (出處:viphot)

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314471.htmlTechArticle透過對php一些伺服器端特性的配置加強php的安全by san@xfocus.org 前面象Shaun Clowes和rfp等都比較詳細的介紹了php、cgi程式在程式設(shè)計過程中遇到的問...
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(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調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 PHP調(diào)用AI智能語音助手 PHP語音交互系統(tǒng)搭建 Jul 25, 2025 pm 08:45 PM

用戶語音輸入通過前端JavaScript的MediaRecorderAPI捕獲並發(fā)送至PHP後端;2.PHP將音頻保存為臨時文件後調(diào)用STTAPI(如Google或百度語音識別)轉(zhuǎn)換為文本;3.PHP將文本發(fā)送至AI服務(wù)(如OpenAIGPT)獲取智能回復(fù);4.PHP再調(diào)用TTSAPI(如百度或Google語音合成)將回復(fù)轉(zhuǎn)為語音文件;5.PHP將語音文件流式返回前端播放,完成交互。整個流程由PHP主導(dǎo)數(shù)據(jù)流轉(zhuǎn)與錯誤處理,確保各環(huán)節(jié)無縫銜接。

如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) 如何用PHP搭建社交分享功能 PHP分享接口集成實戰(zhàn) Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態(tài)生成符合各平臺要求的分享鏈接。 1.首先獲取當前頁面或指定的URL及文章信息;2.使用urlencode對參數(shù)進行編碼;3.根據(jù)各平臺協(xié)議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態(tài)生成頁面OG標籤優(yōu)化分享內(nèi)容展示;6.務(wù)必對用戶輸入進行轉(zhuǎn)義以防止XSS攻擊。該方法無需複雜認證,維護成本低,適用於大多數(shù)內(nèi)容分享需求。

如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 如何用PHP結(jié)合AI實現(xiàn)文本糾錯 PHP語法檢測與優(yōu)化 Jul 25, 2025 pm 08:57 PM

要實現(xiàn)PHP結(jié)合AI進行文本糾錯與語法優(yōu)化,需按以下步驟操作:1.選擇適合的AI模型或API,如百度、騰訊API或開源NLP庫;2.通過PHP的curl或Guzzle調(diào)用API並處理返回結(jié)果;3.在應(yīng)用中展示糾錯信息並允許用戶選擇是否採納;4.使用php-l和PHP_CodeSniffer進行語法檢測與代碼優(yōu)化;5.持續(xù)收集反饋並更新模型或規(guī)則以提升效果。選擇AIAPI時應(yīng)重點評估準確率、響應(yīng)速度、價格及對PHP的支持。代碼優(yōu)化應(yīng)遵循PSR規(guī)範、合理使用緩存、避免循環(huán)查詢、定期審查代碼,並藉助X

PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機制 PHP實現(xiàn)商品庫存管理變現(xiàn) PHP庫存同步與報警機制 Jul 25, 2025 pm 08:30 PM

PHP通過數(shù)據(jù)庫事務(wù)與FORUPDATE行鎖確保庫存扣減原子性,防止高並發(fā)超賣;2.多平臺庫存一致性需依賴中心化管理與事件驅(qū)動同步,結(jié)合API/Webhook通知及消息隊列保障數(shù)據(jù)可靠傳遞;3.報警機制應(yīng)分場景設(shè)置低庫存、零/負庫存、滯銷、補貨週期和異常波動策略,並按緊急程度選擇釘釘、短信或郵件通知責(zé)任人,且報警信息需完整明確,以實現(xiàn)業(yè)務(wù)適配與快速響應(yīng)。

超越燈堆: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中的對象關(guān)聯(lián)映射(ORM)性能調(diào)整 PHP中的對象關(guān)聯(lián)映射(ORM)性能調(diào)整 Jul 29, 2025 am 05:00 AM

避免N 1查詢問題,通過提前加載關(guān)聯(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ā)效率的同時確保應(yīng)用性能。

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

要構(gòu)建彈性的PHP微服務(wù),需使用RabbitMQ實現(xiàn)異步通信,1.通過消息隊列解耦服務(wù),避免級聯(lián)故障;2.配置持久化隊列、持久化消息、發(fā)布確認和手動ACK以確保可靠性;3.使用指數(shù)退避重試、TTL和死信隊列安全處理失??;4.通過supervisord等工具守護消費者進程並啟用心跳機制保障服務(wù)健康;最終實現(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基礎(chǔ)鏡像並配置安全、性能優(yōu)化的Docker環(huán)境是實現(xiàn)生產(chǎn)就緒的關(guān)鍵。 1.選用php:8.3-fpm-alpine作為基礎(chǔ)鏡像以減少攻擊面並提升性能;2.通過自定義php.ini禁用危險函數(shù)、關(guān)閉錯誤顯示並啟用Opcache及JIT以增強安全與性能;3.使用Nginx作為反向代理,限制訪問敏感文件並正確轉(zhuǎn)發(fā)PHP請求至PHP-FPM;4.採用多階段構(gòu)建優(yōu)化鏡像,移除開發(fā)依賴,設(shè)置非root用戶運行容器;5.可選Supervisord管理多個進程如cron;6.部署前驗證無敏感信息洩

See all articles