2

調査を通じて、クライアントがブラウザを使用してライブラリに直接アクセスできないようにするための2つの一般的な手法を発見しました。

  1. .htaccessそれらを締め出すために使用する
  2. 定数を定義し、それをインクルードファイルに渡します。インクルードファイルは、定数が存在するかどうかを確認します。

ただし、これらのファイルをドキュメントルートから除外することは賢明なようです。このアプローチに何か問題がありますか?

4

4 に答える 4

9

最善の方法は、それをdocrootの外に置くことです。インクルードを直接HTTPアクセス可能な場所に配置する理由はありません。

一部の共有ウェブホストは構成が不十分で、このオプションがありませんが、ほとんどの場合、このオプションは自分のサーバーまたはVPSで確実に選択できます。

于 2012-08-12T18:08:39.670 に答える
2

ブラッドの答えを完成させるために、フォルダーを整理する方法は次のとおりです。

/path/to/project/
  public_html/
    index.php
  includes/
    includes.php

Web サーバーのルート フォルダーはpublic_html.

この構造を変更できない場合、許容される唯一の方法は、a .htaccess(または同等のもの) を使用してincludes公開アクセスを防止することです。

于 2012-08-12T18:13:07.650 に答える
0

Apache ウェブサーバーを使用している場合、すべての .inc.php ファイルへのアクセスを拒否できます。Apache Vhost 構成に以下を追加するだけです。

<FilesMatch .inc.php>
   Order allow, deny
   deny from all
</FilesMatch>

これらのファイルを php コードに含めることもできます。

于 2012-08-12T18:26:51.547 に答える
0

ライブラリファイルがクラス/関数などを定義するだけで、サーバーがソースを表示できるように構成されていない場合、とにかくWebサーバー経由でスクリプトを要求しても何も達成されません. そうは言っても、可能であれば、ドキュメント ルートの外に保存することもできます。

于 2012-08-12T18:28:05.117 に答える