簡體   English   中英

如何隱藏配置文件以防止直接訪問?

[英]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.

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