-3

サイトがあり、すべてのユーザー ログを含む log.txt ファイルを作成したいと考えています。たとえば、ユーザーはいつでもログインしてログアウトしました。つまり、ユーザーがログインおよびログアウトした時間です。データベースでこれを作成できますが、多くの行があり、必要ありません。log.txt ファイルを /logs/log.txt に配置すると、domain.com/log/log.txt をアドレス バーに書き込むすべてのユーザーにそのファイルが表示されます。どうすればこれを防ぐことができますか。(私はPHPを使用しています)

4

3 に答える 3

2

.htaccessを使用して、または他のApache構成の場所に同様のルールを設定することにより、Webサイトの訪問者からファイルを非表示にできることは事実です。しかし、この種のことは些細なことではなく、間違いを犯しやすいです。サイト訪問者からファイルを隠す最良の方法は、プロジェクトのディレクトリ構造を使用することです。例えば:

  • www/Webサイトの訪問者がブラウザで直接アクセスする必要があるすべてのファイルを含むディレクトリ。これは、Apache構成でWebサイトのルートとして使用されるディレクトリになります。ブラウザがファイルをフェッチする必要がない場合は、ここにあるべきではありません。
  • logs/ログ、lib/スクリプトに含まれるソースコード、設定および構成ファイルなどの他のディレクトリconfig/。これらはWebサイトのルート(www/)内にないため、ユーザーはブラウザでこれらのファイルを指定できません。

共有ホスティングを使用していて、Webサイトのルートであるフォルダーが1つしかない場合は、これを行うことはできません。ただし、そのような会社からホスティングアカウントを購入することはありません。これは、Webルートの外部にファイルを配置できるものがたくさんあるためです。

于 2012-05-06T19:09:01.773 に答える
1

.htaccess を使用する

   <Files "log.txt">
        order deny,allow
        deny from all
        allow from 1.2.3.4
    </Files>

サイト経由でブラウザからアクセスできるようにしたい場合は、1.2.3.4 が IP です。それ以外の場合は、その行を削除して、FTP またはスクリプト経由でのみアクセスできるようにします

于 2012-05-06T18:55:17.440 に答える
0

次を含む .htaccess ファイルを使用して、ログ フォルダーへの http アクセスを防ぐことができます。

deny from all
于 2012-05-06T18:52:10.470 に答える