WEBフォームを設置する際、ユーザーのアクセス制御やセキュリティを考慮することは非常に重要です。特に、複数のPHPファイルを使用する場合、適切なパーミッション設定が必要です。この記事では、input.phpとresult.phpを使用したWEBフォームの設定方法を解説します。
1. WEBフォームの構成とセキュリティ要件
WEBフォームでは、ユーザーが情報を入力するためのinput.phpと、その結果を表示するresult.phpが必要です。しかし、result.phpへの直接アクセスを防ぐことが求められます。つまり、input.phpで情報を入力し、アクションボタンをクリックしてresult.phpに遷移したときのみ、結果が表示されるようにしたいという要件です。
そのためには、適切なパーミッション設定とアクセス制限が必要です。これにより、不正なアクセスを防ぎ、フォームのセキュリティを確保できます。
2. PHPファイルのパーミッション設定
まず、input.phpとresult.phpファイルのパーミッションを正しく設定することが重要です。一般的に、WEBサーバーがPHPファイルを読み書きできるようにするために、次のパーミッションを設定することが推奨されます。
- input.php: 644 (所有者が読み書き、その他のユーザーは読み取りのみ)
- result.php: 644 (所有者が読み書き、その他のユーザーは読み取りのみ)
これにより、WEBサーバーはこれらのファイルにアクセスできますが、外部から直接アクセスすることはできません。
3. result.phpへのアクセス制限
次に、重要なのはresult.phpファイルへのアクセス制限です。通常、result.phpはフォームからのPOSTリクエストによって表示されるべきです。このファイルへの直接アクセスを防ぐために、次のような方法が考えられます。
- セッションを使用して、フォームから遷移したユーザーだけがアクセスできるようにする
- リファラーチェックを実施し、input.phpから遷移したリクエストのみを許可する
- result.phpファイルを別のディレクトリに配置し、.htaccessでアクセス制御を行う
これにより、ユーザーが直接result.phpにアクセスできないように制限することができます。
4. .htaccessを使ったアクセス制限
もしresult.phpを別ディレクトリに配置する場合、.htaccessを使用してアクセス制限を追加することができます。例えば、以下のような設定をresult.phpが配置されたディレクトリに追加します。
Order Deny,Allow
Deny from all
Allow from env=ALLOW
これにより、特定の条件(例えば、input.phpからのリクエスト)を満たさない限り、result.phpにアクセスできなくなります。
5. まとめ
WEBフォームのセキュリティを確保するためには、PHPファイルのパーミッションを適切に設定し、result.phpへのアクセス制限を行うことが重要です。input.phpとresult.phpを使ったWEBフォームでは、アクセス制御を行うためにセッションやリファラーチェック、.htaccessを活用することが推奨されます。これにより、ユーザーが意図した方法でのみ情報を表示できるようになります。
コメント