簡體   English   中英

如何防止直接訪問生成圖像的php文件

[英]How to Prevent Direct Access to a php file that is generating Image

我有一個生成Image的php文件,它被包含在image標簽中,如下所示:

<img src"generate_contact.php?memberid=3456">

現在,如果有人嘗試使用Memberid查詢字符串直接訪問此文件,他們實際上將看到正在生成的圖像文件。

如何防止直接訪問 "generate_contact.php"

注意:如果我嘗試在插入此img標簽的文件中制作一個常量,generate_contact.php是否可以訪問該常量? 詢問,因為不包含generate_contact.php。僅在圖像標記中作為src添加。

問候

為什么不使用唯一的哈希而不是使用增量成員ID來訪問此圖像?

在您的成員表中,添加一個“哈希”字段,並在該字段內為每個成員添加一個隨機字符串。

我習慣以此方式生成10個字符的哈希值:

$hash = substr(str_shuffle(base_convert(str_shuffle(sha1(str_shuffle(md5(rand() . microtime())))), 16, 36)), 0, 10);

之后,使用您的哈希來標識您的成員:

<img src = "generate_contact.php?memberhash=0qxv(...)"/>

這樣,搜尋器將無法增加ID並獲取整個成員的關聯聯系人。

無法阻止直接訪問您要顯示給用戶的圖像。 有了:

<img src = "generate_contact.php?memberid=3456">

您已經為他們提供了直接訪問權限,因為一旦頁面加載,用戶的瀏覽器實際上將對該文件發出GET請求。 試圖阻止直接訪問您要顯示給用戶的圖像與Internet的基本要求背道而馳,在Internet中,用戶要求公共文檔。

要求將圖像放置在頁面內的用戶瀏覽器是一個“獲取”請求,與您直接鍵入地址一樣。 除非使用Flash,否則您實際上無法將圖像放置在頁面上,然后使其完全無法訪問。

好,再退一步。

都是關於URL的。 如果將URL放入圖像元素的src屬性中,則該圖像必須在該URL上可用:

<img src="/img/profile/42.jpg">

瀏覽器將下載帶有該圖像元素的HTML文檔,然后向該URL發出另一個HTTP請求 (與第一個請求一樣),以也下載該圖像。

您可以將該URL直接放入瀏覽器的地址欄中,以達到相同的效果。 某些URL上有某些可用內容。 該URL的訪問方式無關緊要。 它不是“綁定到HTML文檔”,“秘密”或“隱藏”之類的,因為它在HTML文檔中。

URL始終是公共的,並且可以“直接”訪問,否則沒有人可以看到其內容。

因此,您的URL generate_contact.php?memberid=3456吐出圖片還是不會吐出圖片。 它在后台執行的操作無關緊要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM