簡體   English   中英

如何防止用戶通過URL查看圖像?

[英]How to keep users from viewing images by URL?

想象一下,我在secretImage.png上有一個圖像文件secretImage.png ,我希望多個用戶有權在index.php上訪問該圖像。 這很容易做到:

// index.php
if($userIsAllowed) echo '<img src="secretImage.png" />';

問題是,從理論上講,用戶仍然可以通過直接瀏覽到www.myDomain.com/secretImage.png來訪問圖像。 有什么方法可以阻止他們這樣做,以便只能在index.php內部查看圖像?

您可以使用htaccess通過.php文件路由對特定文件夾的所有請求。 在文件中,您可以確定用戶是否可以看到文件...如果可以,請提供正確的標題和圖像。 如果沒有,請顯示任何內容(404,占位符圖像)。

HTTP調用GET /secretImage.png本身應要求身份驗證。 例如,您可以使用基本身份驗證,並讓用戶發送Authorization: {base64 user:password}標頭。

通過fpassthru從php文件提供圖像,以檢查是否允許該用戶

因此,例如,您可能有一個PHP文件getimage.php,該文件接受諸如“?image = mysecretimage.png”之類的查詢字符串,如果允許用戶,它將通過它。 如果您采用這種方式,請小心采取適當的預防措施,以確保僅通過圖像文件。

可以通過HTTP身份驗證來保護用戶特定的URL。 在線上有示例 ,通過.htaccess修改完全有可能使您針對所有現有圖像定制此方法。

暫無
暫無

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

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