[英]How to hide config files from direct access?
我正在將 Laravel 用於網絡應用程序。 上傳了生產中的所有內容,發現某些文件可以通過 url 直接訪問 - 例如http://example.com/composer.json
如何避免直接訪問?
您使用了錯誤的 Web 服務器配置。 將您的 Web 服務器指向public
目錄並重新啟動它。
對於Apache,您可以使用這些指令:
DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">
對於nginx ,您應該更改此行:
root /path_to_laravel_project/public;
這樣做之后,瀏覽器將無法再訪問所有 Laravel 文件。
那是不正確的。 composer.json
位於public
目錄之外,因此不應該被訪問。 這意味着您的 VirtualHost 配置不正確。
請確保您的目錄路徑以/public
結尾。
將 Web 服務器指向項目根文件夾中的公共目錄
project root folder/public
但是如果您沒有 public 文件夾並且您已經指向根文件夾,您可以通過在.htaccess
文件中編寫以下代碼來拒絕訪問。
<Files ".env">
Order Allow,Deny
Deny from all
Allow from 127.0.0.1
</Files>
在上面的代碼中,首先我們拒絕所有並只允許從自己的服務器(本地主機到服務器)執行,因此我們可以保護它免受外部用戶的攻擊。
將您的 Web 服務器指向公共目錄並重新啟動它。
對於 Apache,您可以使用這些指令:
DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">
您也可以拒絕 .htaccess 中的文件。
<Files "composer.json">
Order Allow,Deny
Deny from all
</Files>
對於多個文件,您可以在 .htaccess 文件中多次添加上述文件標簽。
將您的文檔根目錄設置為public
目錄,這樣其他文件將無法直接訪問。 在你的 apache/nginx/??? 中尋找它配置文件。
這取決於您運行的網絡服務器。 對於 Apache,它將是 .htaccess 文件,而對於 Nginx,它將在服務器配置文件中處理。
您也可以拒絕 .htaccess 中的文件。
<Files "composer.json">
Order Allow,Deny
Deny from all
</Files>
使用 Apache,您可以在 Laravel 項目的根目錄下創建 .htaccess 文件,將所有請求重寫到 public/ 目錄。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
簡單地創建空白
索引.php
配置目錄中的文件,並在文件中寫入消息以通知訪問者用戶
例如。 服務器禁止訪問
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.