簡體   English   中英

限制對授權的php用戶的文件訪問權限

[英]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.

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