簡體   English   中英

使用slim和php訪問目錄根目錄之外的文件

[英]Accessing files outside directory root with slim and php

目前,我的文件結構如下:

├── README.md
├── app
├── classes
├── composer.json
├── composer.lock
├── database
├── public
├── templates
├── users
└── vendor

users文件夾中,我有一些文件夾與登錄用戶的用戶名有關,每個文件夾都有由用戶定義的自己的文件和文件夾。

我遇到的問題是我無法下載users目錄中的文件。 目前,我的代碼可以通過將users目錄移到public目錄中來工作,但是這樣做存在明顯的安全漏洞。 我該如何使我的用戶目錄位於根目錄的上一級,如此處所示,但仍可以由public目錄訪問?

我已經嘗試過使用RewriteRule users/ ../users/但是它似乎不起作用。 我能夠訪問users通過PHP目錄,在剛剛不是我的前端控制器public文件夾。

這是我使用Slim的第一個“真實”項目,因此對於整個前控制器/ mvc類型的事情我還是很陌生。 任何幫助將是巨大的,謝謝!

在路由邏輯或控制器中,您需要驗證用戶是否有權訪問該文件,然后最有可能使用PHP來提供文件,因為在Web路徑中無法訪問該文件。

在PHP中,您可以設置適當的HTTP標頭,並使用readfile()將文件提供給最終用戶。

http://php.net/manual/zh/function.readfile.php

暫無
暫無

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

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