在我的yii
項目中,我有Changelog
和Licence
文本文件。我知道RBAC
並將其應用於每個Controller
,但是如何防止任何訪客用戶查看這些文本文件。到目前爲止,任何人都可以查看。如何停止訪問文本文件?
我在htaccess
文件
<Files ~ "(.txt)">
Order allow, deny
Deny from all
</Files>
使用該但這是txt file
工作,這些文件沒有extension
在我的yii
項目中,我有Changelog
和Licence
文本文件。我知道RBAC
並將其應用於每個Controller
,但是如何防止任何訪客用戶查看這些文本文件。到目前爲止,任何人都可以查看。如何停止訪問文本文件?
我在htaccess
文件
<Files ~ "(.txt)">
Order allow, deny
Deny from all
</Files>
使用該但這是txt file
工作,這些文件沒有extension
您的問題是一個很小的電路板,所以答案是小將軍。但有幾種方法;
選項1.刪除更改日誌和許可證文件?如果這些是yii安裝changelog和許可證,那麼他們不需要留在服務器上。只要確保您遵守許可證要求即可。
選項2. 您提到「guest用戶」哪個htaccess是不會與yii爲授權用戶良好集成。您可以將文件移動到包含單行Deny from all
的.htaccess文件夾中。這會阻止除您在服務器上執行的PHP之外的所有人。
您現在可以在控制器中創建一個方法/操作,它只是迴應文件內容。 file-get-contents或readfile。將此身份驗證包裝起來,以便只有非訪客用戶才能使用該方法。
如果只有兩個靜態文件,那麼可能只是每個「動作」。如果它的許多文件正在改變名稱等,那麼你接受一個ID到控制器傳遞給一個模型,使用scandir並檢查file真的exists並吐出你的輸出來查看。
選項2.1 文件夾用的.htaccess你也可以將文件移動到虛擬主機提供商的基礎目錄的父,如果你有這樣的訪問,而不是。這意味着你的web服務器不能提供文件,但php仍然可以通過本地路徑訪問它。
選項3 在.htaccess可以使用進行AuthType basic和將調用您的Web服務器提示輸入用戶名和密碼的用戶作爲在.htaccess配置。這是有問題的,因爲界面不是用戶友好的,並且很難與你的webapps用戶db集成。
選項4 的.htaccess可以支持其他AuthType秒,但選擇2成爲在這一點上要容易得多。
您可以阻止訪問所有的文件,而不使用在你的站點根目錄的.htaccess或者Apache的配置/虛擬主機文件這一規則擴展名:
RewriteEngine On
# If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f
# if there is no extension then block
RewriteRule ^[^.]+$ - [F]
多少文件有**的**約上你想拒絕訪問,而且文件也有類似的名字? –