1

スクリプトの実行のみを許可するか、Web サーバー上の PHP ファイルから要求を取得します。

  • たとえば。Webサーバーにファイルがありますhttp://example.com/libs/comment.php
  • このファイルからの他の PHP または JS ファイルの get 要求のみを許可します (このファイルを実行し、目的の結果を実行することを意味します)。
  • ユーザーがこのファイルに直接アクセスしようとすると、エラーまたは 404 その他のメッセージが表示されます。

ここでは、これcomment.phpは単なる例です。libs フォルダーには多くのファイルが含まれており、上記はそれらすべてに当てはまります。私の好みは、.htacces メソッドまたは 666,777 などのフォルダーのモード書き換えを使用することです。これは、セキュリティを向上させてほとんど安全なサイトにするためだけに要求する本当の質問ではないことを知っています。

4

6 に答える 6

4

これを行う最も簡単な方法は、フロントコントローラー(おそらくindex.php)で定数を定義することです。

define('SECURE', true);

次に、含まれているファイルの先頭でテストします。

!defined('SECURE') and exit;

これにより、クライアント側のアクセスが防止されます(ページから、JavaScriptを介して、またはsrc属性を介してアセットを呼び出すことを含みます。実際にはすべて

他の回答で推奨されているように、セキュリティのために他の準備をするのが最善です。

于 2012-07-13T09:13:40.647 に答える
3

.htaccessあなたはすでにあなたの質問に言及しています。ディレクトリにそのようなファイルを作成しlibs、次のディレクティブを入力するだけです。

Order allow, deny
Deny from all

OrderおよびDenyディレクティブの詳細については、マニュアルを参照してください。

エラーは403 Forbiddenの代わりになることに注意してください404 Not Found

これにより、ディレクトリ内のファイルへの HTTP 経由のすべてのアクセスが拒否されることに注意してくださいlibs。これは純粋にサーバー側の操作であるため、他の PHP ファイルをこれらのファイルに適用できincludeます。require何らかの理由で 1 つの PHP スクリプトを HTTP 経由で別のスクリプトを実行する必要がある場合は、ローカル リクエストを続行できるようにするために、順序を に変更しdeny, allow、行を追加することもできます。Allow from 127.0.0.1しかし、PHP スクリプトが HTTP 経由で相互に通信しているとは思えません。

これらのファイルにアクセスしないようにクライアント側で JavaScript ドキュメントが必要な場合、これは合理的に行うことができません: クライアント ブラウザーができることは何でも、クライアントはコードを実行せずに実行できます。少なくとも、意図したとおりにすべてを実行する必要はありません。に。PHP ファイルへのアクセスを制限する方法についての質問があり、簡単な破壊行為を防ぐためのいくつかの手順について説明されていますが、これらのいずれも、ハッカーがスクリプトを使用するのを防ぐことはできません.

于 2012-07-13T22:33:42.047 に答える
2

ブラウザが<script>またはを介してアクセスできる場合<style>は、ユーザーもアクセスできます。

publicサーバーにのみアクセスさせたい場合は、ディレクトリからサーバーを引き出して、 Webにアクセスできないようにします。

于 2012-07-13T09:12:59.150 に答える
0

上記のファイルを含める前に定数を定義できます。何かのようなもの:

<?php
    define('MY_CONSTANT', 1);
    include_once('libs/comment.php');
    ...

次に、comment.php 内に次のようなものを配置できます。

<?php
    if(!defined('MY_CONSTANT')) {
       header("Status: 404 Not Found");
    }
    ...

多かれ少なかれ、あなたが説明したものと同じ効果があります。

于 2012-07-13T09:33:38.287 に答える
0

サーバーのみが実行できるロックファイルを探している場合。最も簡単な方法は、フォルダー全体またはファイルのアクセス許可を変更することです。

たとえば、フォルダーの画像からいくつかの画像を使用したい場合は、画像フォルダーのアクセス許可を 700 に設定できます。これは、サーバー ユーザーのみがファイルを読み書きまたは実行できることを意味します。残りの訪問者とパブリック ユーザーがアクセスしようとすると、404 エラーが発生します。

于 2021-03-09T10:11:22.037 に答える