2

ファイルが.htaccessあり、そこに構成ファイルを含むフォルダーがあり、データベースの詳細などの機密コンテンツが含まれています。知りたいのは、ブラウザーからのアクセスをブロックし、アクセスを許可するにはどうすればよいかということです私のスクリプトを介して?

これは PHP ファイル自体の内部で実現できることはわかっていますが、可能であればこの方法を使用したいと思います.htaccess

これは実際に行うことができますか?以前にも試みたのですが、ブラウザからのファイルへのアクセスを拒否する過程で、コーディングからのアクセスも拒否されました。

以前にこれを調べたことがありますが、出くわした回答のいくつかは、拡張子を のようなものに変更し、.incそれへのアクセスを拒否することを提案していました。ただし、それに関して私が抱えているいくつかの問題は、a) 何らかの理由で、そのファイル名を見ることができる人に、それが構成ファイルであることを即座に警告します。また、b) 拒否コードが壊れた場合、ブラウザーはそれを PHP ファイルではなくファイルとして解析しincます。つまり、ブラウザーにコードを出力します。

基本的に、これは.htaccessファイル内で行うことができますか、それともすべての構成ファイルのヘッダーに何かを入れる必要がありますか?

4

3 に答える 3

3

これらのファイルは、Web サーバーのドキュメント ルートの外に置きます。

サーバー側のスクリプトを介してそれらにアクセスすることはできますが、これにより、外部から直接アクセスすることはできなくなります。

于 2012-07-06T04:48:53.387 に答える
2

従来のアドバイスは、そのようなファイルを「Web サーバーのドキュメント ルートの外」に配置することです。これで問題ありませんが、多くの共有ホスティング サービスでは public_html ディレクトリへの書き込みアクセスしか許可されません。

私は簡単な規則を使用します: プライベート コンテンツ (URI アドレス指定可能ではない) にはアンダースコアがプレフィックスとして付けられるか、ディレクトリ内の名前にはアンダースコアがプレフィックスとして付けられます (例:_privateまたは_include)。次に、この書き換えルールを DOCROOT.htaccessファイルに含めます。

# if a forbidden directory or file name (starting with a . or /) 
# then raise 404 Fatal return

RewriteRule (^|/)[_.] -                                            [F]

エンジンが有効になっているファイルRewriteEngine On先頭に、接頭辞を付けたり、これを含めたりする必要があることに注意してください。 .htaccess

「。」に注意してください。プレフィックスは、.htaccess.

于 2012-07-06T12:30:18.673 に答える
-2

フレームワークを使用してください。この種の問題が存在する必要はありません。ただし、どうしても必要な場合は、.htaccess を記述して、すべてのリクエストをルート ディレクトリ内の単一の index.php にリダイレクトします。これにより、リクエストが有効なファイルに対するものかどうかを判断してそれらを含めるロジックが追加されます。それ以外の場合は、404 または 403 が生成されます。 . 静的ファイルのパフォーマンスが必要な場合は、RewriteCond を使用して、特定のディレクトリまたはファイルの種類を index.php チェックから除外します。

于 2012-07-06T04:45:46.320 に答える