国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP安全-遠程文件風險

瀏覽:101日期:2022-09-11 18:49:41
遠程文件風險

PHP有一個配置選項叫allow_url_fopen,該選項默認是有效的。它允許你指向許多類型的資源,并像本地文件一樣處理。例如,通過讀取URL你可以取得某一個頁面的內容(HTML):

<?php

$contents = file_get_contents(’http://example.org/’);

?>

正如第五章所討論的那樣,當被污染數據用于include和require的文件指向時,會產生嚴重漏洞。實際上,我認為這種漏洞是PHP應用中最危險的漏洞之一,這是因為它允許攻擊者執行任意代碼。

盡管嚴重性在級別上要差一點,但在一個標準文件系統函數中使用了被污染數據的話,會有類似的漏洞產生:

<?php

$contents = file_get_contents($_GET[’filename’]);

?>

該例使用戶能操縱file_get_contents( )的行為,以使它獲取遠程資源的內容。考慮一下類似下面的請求:

http://example.org/file.php?file ... mple.org%2Fxss.html

這就導致了$content的值被污染的情形,由于這個值是通過間接方式得到的,因此很可能會忽視這個事實。這也是深度防范原則會視文件系統為遠程的數據源,同時會視$content的值為輸入,這樣你的過濾機制會潛在的起到扭轉乾坤的作用。

由于$content值是被污染 的,它可能導致多種安全漏洞,包括跨站腳本漏洞和SQL注入漏洞。例如,下面是跨站腳本漏洞的示例:

<?php

$contents = file_get_contents($_GET[’filename’]);

echo $contents;

?>

解決方案是永遠不要用被污染的數據去指向一個文件名。要堅持過濾輸入,同時確信在數據指向一個文件名之前被過濾即可:

<?php

$clean = array();

/* Filter Input ($_GET[’filename’]) */

$contents = file_get_contents($clean[’filename’]);

?>

盡管無法保證$content中的數據完全沒有問題,但這還是給出了一個合理的保證,即你讀取的文件正是你想要讀取的文件,而不是由攻擊者指定的。為加強這個流程的安全性,你同樣需要把$content看成是輸入,并在使用前對它進行過濾。

<?php

$clean = array();

$html = array();

/* Filter Input ($_GET[’filename’]) */

$contents = file_get_contents($clean[’filename’]);

/* Filter Input ($contents) */

$html[’contents’] = htmlentities($clean[’contents’], ENT_QUOTES, ’UTF-8’);

echo $html[’contents’];

?>

上面的流程提供了防范多種攻擊的強有力的方法,同時在實際編程中推薦使用。

標簽: PHP
相關文章:
主站蜘蛛池模板: 伊人久爱 | 成人网18免费软件大全 | 欧美成人午夜 | 日韩三级免费观看 | 经典香港一级a毛片免费看 精品400部自拍视频在线播放 | 成人免费大片a毛片 | 欧美成人手机视频 | 直接看的毛片 | 亚洲成人国产精品 | 精品少妇一区二区三区视频 | 99在线精品视频免费观里 | 亚洲综合在线视频 | 日本黄页网站免费大全 | 在线观看视频亚洲 | 成人精品国产亚洲欧洲 | 欧美日韩亚洲一区二区三区在线观看 | 国产成人精品一区二区视频 | 日本一级特黄特色大片免费视频 | 成人毛片18女人毛片免费 | 久久精品国产99久久99久久久 | 久久国产视频网 | 久久久久欧美精品观看 | 亚洲成人第一页 | 日本欧美在线视频 | 鲁老汉精品视频在线观看 | 亚洲天天 | 成人ab片 | 俄罗斯黄色毛片 | 一区二区三区网站在线免费线观看 | 老司机亚洲精品影院 | 亚洲高清在线观看看片 | 青青草国产免费一区二区 | 国产成人综合一区精品 | 美女一丝不佳一级毛片香蕉 | 日韩在线黄色 | 中文一区在线观看 | 免费黄色在线网址 | 国产黄色片一级 | a毛片a毛片a视频 | 欧美一级毛片在线播放 | 国产精品女在线观看 |