真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP如何實(shí)現(xiàn)編程函數(shù)安全-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)PHP如何實(shí)現(xiàn)編程函數(shù)安全的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國電信/網(wǎng)通/移動(dòng)機(jī)房,成都服務(wù)器托管服務(wù)有保障!


注意一些函數(shù)的過濾
有些函數(shù)在程序中是經(jīng)常使用的,像include(),require(),fopen(),fwrite(),readfile(),unlink(),eval()以及它們的變體函數(shù)等等。這些函數(shù)都很實(shí)用,實(shí)用并不代表讓你多省心,你還得為它們多費(fèi)點(diǎn)心。 :)
1.include(),require()和fopen(),include_once(),require_once()這些都可以遠(yuǎn)程調(diào)用文件,對(duì)于它們的危害,google搜一下你就會(huì)很明了,對(duì)于所包含調(diào)用的變量沒過濾好,就可以任意包含文件從而去執(zhí)行。舉個(gè)例子,看print.php

if (empty ($bn) ) { //檢查是變量$bn是否為空
include (“$cfg_dir/site_${site}.php”); //把$cfg_dir這個(gè)路徑里的site_${site}.php包含進(jìn)來

不管存不存在$cfg_dir目錄,$site這個(gè)變量你可以很自然的去使用,因?yàn)樗緵]檢查$site變量啊??梢园炎兞?site指定遠(yuǎn)程文件去調(diào)用,也可以是本地的一個(gè)文件,你所指定的文件里寫上php的語句,然后它就去包含執(zhí)行這個(gè)含有php語句的文件了.就像這樣
列出文件目錄甚至可以擴(kuò)展到包含一些管理員文件,提升權(quán)限,典型的像以前phpwind,bo-blog的漏洞一樣。除了依靠php.ini里的allow_url_fopen設(shè)為off禁止遠(yuǎn)程使用文件和open_base_dir禁止使用目錄以外的文件外,你還得事先聲明好只能包含哪些文件,這里就不多說廢話了。
2.fopen(),file(),readfile(),openfile(),等也是該特別留意的地方。函數(shù)本身并沒什么,它們的作用是去打開文件,可是如果對(duì)變量過濾不徹底的話,就會(huì)泄露源代碼。這樣的函數(shù)文本論壇里會(huì)有很多。

$articlearray=openfile(“$dbpath/$fid/$tid.php”); //打開$dbpath/$fid這個(gè)路徑的$tid.php文件
$topic_detail=explode(“|”,$articlearray[0]); //用分割符|讀出帖子的內(nèi)容

很眼熟吧,這是ofstar以前版本的read.php,$fid和$tid沒有任何過濾,$tid指定為某個(gè)文件提交,就發(fā)生了原代碼泄露。就像這樣。

$tid會(huì)被加上php的后綴,所以直接寫index。這僅僅是個(gè)例子,接著看吧。
3.fwrite()和它的變體函數(shù)這種漏洞想想都想得出,對(duì)于用戶提交的字符沒過濾的話,寫入一段php后門又不是不可以。
4.unlink()函數(shù),前段時(shí)間,phpwind里任意刪除文件就是利用這個(gè)函數(shù),對(duì)于判斷是否刪除的變量沒過濾,變量可以指定為任意文件,當(dāng)然就可以刪除任意文件的變量。
5.eval(),preg_replace()函數(shù),它們的作用是執(zhí)行php代碼,如果字符串沒被經(jīng)過任何過濾的話,會(huì)發(fā)生什么呢,我就??匆娨恍ヽms里面使用,想想,一句話的php木馬不就是根據(jù)eval()原理制作的嗎?
6.對(duì)于system()這些系統(tǒng)函數(shù),你會(huì)說在php.ini里禁止系統(tǒng)函數(shù),對(duì),這也是好辦法,可是象一些程序里需要,那是不是就不用了呢?就像上次我看到的一套很漂亮的php相冊(cè)一樣。另外對(duì)于popen(),proc_open(),proc_close()函數(shù)你也得特別注意,盡管他們執(zhí)行命令后并沒有直接的輸出,但你想這到底對(duì)黑客們有沒有用呢。再這里php提供提供了兩個(gè)函數(shù),escapeshellarg(),escapeshellcmd(),這兩個(gè)函數(shù)用來對(duì)抗系統(tǒng)函數(shù)的調(diào)用攻擊,也就是過濾。
對(duì)于危害,來舉個(gè)例子,我們來看某論壇prod.php
07 $doubleApp = isset($argv[1]); //初始化變量$doubleApp

14 if( $doubleApp ) //if語句
15 {
16 $appDir = $argv[1]; //初始化$appDir
17 system(“mkdir $prodDir/$appDir”); //使用系統(tǒng)函數(shù)system來創(chuàng)建目錄$prodDir/$appDir

本來是拿來創(chuàng)建$prodDir/$appDir目錄的,再接著看上去,程序僅僅檢測(cè)是否存在$argv[1],缺少對(duì)$argv[1]的必要過濾,那么你就可以這樣
/prod.php?argv[1]=|ls%20-la或者/prod.php?argv[1]=|cat%20/etc/passwd
(分割符| 在這里是UNIX的管道參數(shù),可以執(zhí)行多條命令。)
到這里,常見的漏洞類型應(yīng)該知道點(diǎn)了吧。

所以一定不要只指望服務(wù)器端的設(shè)置,好后臺(tái)程序也需要注意下,一般情況下通過服務(wù)器針對(duì)某個(gè)站點(diǎn)設(shè)置應(yīng)該能好點(diǎn)。但很多與數(shù)據(jù)庫的操作等就不是這么容易控制了。

感謝各位的閱讀!關(guān)于“PHP如何實(shí)現(xiàn)編程函數(shù)安全”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


文章題目:PHP如何實(shí)現(xiàn)編程函數(shù)安全-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/dpgces.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部