簡體   English   中英

防止直接訪問文件,如 EDM(?)

[英]Prevent direct access to files like an EDM(?)

我有一個由多個用戶使用的 php 網絡應用程序。 他們可以在一個目錄中上傳文件:“files”創建一個子目錄,並使用賦予用戶“foo”的唯一名稱並存儲文件,因此:mydomain.com/files/foo/thefilename.doc

它可以工作,但為了防止直接訪問該文件並防止其他用戶訪問他們不屬於的文件,我放置了一個 .htaccess 文件:

Order Deny,Allow
Deny from all

它有效但是,在我的網絡應用程序中,如果用戶“foo”想要訪問和顯示他的文件,他會收到 403 錯誤。

我該怎么做(如 EDM 電子文檔管理)來存儲文件以防止直接訪問但向正確的用戶提供訪問權限?

非常感謝

您可以通過使用 PHP 動態獲取並呈現文件內容來實現。

也許是這樣的:

$filename = $_GET['filename'];
// TODO: fill $allowedFiles[];
if (!in_array($filename, $allowedFiles))
   exit;

header('Content-Type: text');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');

echo file_get_contents($filename);

當然只是概念

為什么不使用會話?

只需在每個頁面的開頭添加<?php session_start() ?> (在<! DOCTYPE>之前。並限制對用戶登錄后的某些文件的訪問?

有關 php 會話的更多信息

暫無
暫無

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

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