91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php打開遠程文件的方法

發布時間:2021-07-24 13:58:08 來源:億速云 閱讀:195 作者:chen 欄目:開發技術

本篇內容介紹了“php打開遠程文件的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

復制代碼 代碼如下:


<?php
$contents = file_get_contents('https://www.jb51.net/');
?>


當被污染數據用于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打開遠程文件的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

万源市| 诏安县| 穆棱市| 曲沃县| 江西省| 红桥区| 永济市| 泰州市| 东乡县| 监利县| 滨海县| 东丽区| 塘沽区| 纳雍县| 潜江市| 铁岭县| 从江县| 光泽县| 大姚县| 金湖县| 资兴市| 河北省| 铁岭市| 永春县| 剑阁县| 南郑县| 北宁市| 开封市| 周口市| 通城县| 焦作市| 曲周县| 塘沽区| 冀州市| 屏边| 乌鲁木齐县| 武清区| 乌什县| 临夏县| 绍兴市| 平昌县|