[英]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()將文件提供給最終用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.