我試圖通過操縱URL來拒絕用戶訪問「site/includes」文件夾。 我不知道是否必須否決所有事情,並手動進行個別例外以允許,如果我可以拒絕這個文件夾,或者是否有可以使用的重寫函數。拒絕訪問.htaccess中的一個特定文件夾
具體示例:我不想通過在URL中輸入「localhost/site/includes」來查看目錄文件。
我試圖通過操縱URL來拒絕用戶訪問「site/includes」文件夾。 我不知道是否必須否決所有事情,並手動進行個別例外以允許,如果我可以拒絕這個文件夾,或者是否有可以使用的重寫函數。拒絕訪問.htaccess中的一個特定文件夾
具體示例:我不想通過在URL中輸入「localhost/site/includes」來查看目錄文件。
創建site/includes/.htaccess
文件,加入這一行:
Deny from all
嘿.htaccess文件'選項-Indexes'! anubhava我用這個來禁止直接訪問我的api文件裏面的/ api文件夾,但現在所有的web服務調用發送403禁止狀態..我只是想阻止訪問,當有人從瀏覽器訪問它。 – ravisoni
對於網絡服務器來說,瀏覽器和非瀏覽器之間的請求之間沒有真正的區別。 – anubhava
我使用nginx,我不能使用'.htaccess'。那麼,如何在沒有'.htaccess'的情況下做到這一點?謝謝 – Shafizadeh
在.htaccess
文件,你需要使用
Deny from all
在site/includes/.htaccess
將這個以使其具體到includes
目錄
如果您只是想禁止列出目錄文件,您可以使用
Options -Indexes
與
Deny from all
,或者您可以重定向到一個自定義404頁,您可以創建該文件夾的.htaccess文件,至極應該拒絕訪問
Redirect /includes/ 404.html
除了這些安全建議的方法,我也可以發佈。如果目錄沒有被動態地創建,那麼做一個調整和不太安全的方法。
將空白的index.html文件,目錄 :)
,如果你是動態創建目錄:
mkdir($dirname, 0644);
這不會拒絕訪問目錄中的文件,只是阻止它們被列出。 –
創建的index.php,index.html的,index.htm的是不安全。因此,任何人都可以通過猜測文件名來訪問指定目錄中的文件。例如:http://yoursite.com/includes/file.dat 因此,建議的方法是創建一個.htaccess文件來拒絕所有訪問者;)。玩的開心 !!
你也可以把這個IndexIgnore *
在你的根.htaccess文件來禁用所有網站的目錄包括的文件列表子DIR
這是正確的解決方案,運行良好 – Elby
這不會禁用文件列表,但會告訴autoindexer在構建索引時忽略所有文件。要禁用文件列表,你可以使用'Options -Indexes'。 –
我們將設置該目錄是所有類型的文件非常安全,拒絕訪問。以下是您想要插入.htaccess文件的代碼。
Order Allow,Deny
Deny from all
由於我們現在已經設置了安全性,我們現在要允許訪問我們所需的文件類型。爲此,請將以下代碼添加到您剛插入的安全代碼下的.htaccess文件中。
<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>
最終.htaccess
文件看起來像
Order Allow,Deny
Deny from all
<FilesMatch "\.(jpg|gif|png|php)$">
Order Deny,Allow
Allow from all
</FilesMatch>
來源從Allow access to specific file types in a protected directory
您也可以使用RedirectMatch
拒絕訪問的文件夾下面的行添加到htaccess的
RedirectMatch 403 ^/folder/?$
這將返回一個錯誤403 forbidden
爲文件夾,即:http://example.com/folder/
但利己阻止訪問文件和文件夾文件夾中,如果你想阻止的文件夾內的所有內容,然後就在正則表達式模式更改爲^/folder/.*$
。
另一種選擇是mod-rewrite
如果url-rewrting-module
啓用,你可以使用像在root/.htaccss
如下:
RewriteEngine on
RewriteRule ^folder/?$ - [F,L]
這將在內部映射爲folder
到forbidden
錯誤頁面的請求。
您可以動態地做到這一點的方法:
mkdir($dirname);
@touch($dirname . "/.htaccess");
$f = fopen($dirname . "/.htaccess", "w");
fwrite($f, "deny from all");
fclose($f);
只是禁止列出目錄寫入位於根文件夾 – 2013-10-01 14:15:33