[英]Restrict file access to authorized php users
我繼承了一個帶有明顯安全漏洞的應用程序。
它具有基於會話的安全性,但文件上載(用戶特定的)不以任何方式受到保護,並且它們存儲在公共文件樹中。
文件名不遵循任何約定,使得它們難以猜測,但數據是敏感的,因此我需要實施安全措施以防止未經授權的文件訪問。
移動文件的位置實際上不是一個選項,所以我正在尋找一個htaccess解決方案來將請求轉發到php處理程序腳本。
有沒有人有實施此類事物或任何好的替代解決方案的經驗? .htaccess語法的具體例子非常受歡迎,因為我在這方面苦苦掙扎。
不明白為什么移動它們不是一種選擇,因為將它們的請求推送到處理程序意味着它們不再重要存儲它們。 但你是現場的那個人。
.htaccess看起來像:
RewriteEngine on
RewriteRule path/to/where/these/files/live/(.*) /handlerscript.php/$1
然后從$_SERVER['PATH_INFO']
選擇剩余的文件路徑和名稱。
好吧,你可以為某個文件夾制作apache parse .jpg文件,將以下內容添加到你的.htaccess中
AddHandler php5-cgi .jpg
那么你可以設置一個php文件來解析請求,就像混沌推薦你並進行某種驗證一樣,然后只需返回jpeg標題以及你想要顯示的正確圖片
這是一個例子
<?php
if($validUser)
{
header("Cache-control: No-cache");
header("Pragma: No-cache");
header("Content-Type: image/jpeg");
//correct picture address
$img = imagecreatefromjpeg("2326_b_lil.jpg");
imagejpeg($img);
}
else
{
//code for error image
}
?>
如果你想要一個更廣泛的例子,請告訴我
我想您可能需要編寫一個將為圖像提供服務的腳本,然后使用htaccess來完全限制從瀏覽器訪問實際圖像。
該腳本可以獲取圖像的Web路徑,確定用戶是否具有訪問權限,然后使用fpassthru之類的東西將實際圖像提供給瀏覽器。
但是,需要修改對圖像的所有引用以引用服務腳本。
因此,不是使用/images/123/5423453245.jpg訪問圖像,而是/image.php?images/123/5423453245.jpg
或類似的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.