0

質問: 自分の Web サイトのフォームのみを許可したいのですが。<form action="link"フォームが送信されたときに www.domain.com/link に移動します。ただし、URL www.domain.com/link への直接アクセスを拒否するには.

試行:これまでのところ、mod_rewriteでアクセスを禁止する方法を知っています:

Options -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_URI} link
RewriteRule ^.*/?link/? - [F]

しかし、フォーム送信でページにアクセスできるようにする方法がわかりません。これを行うことでフォームが送信された場合にアクセスを許可するために、秘密の値を持つ入力タグを使用する可能性を探りました

Options -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_URI} link
RewriteCond %{QUERY_STRING} !secret_key
RewriteRule ^.*/?link/? - [F]

代替: ただし、ユーザーがページに直接アクセスしたいときはいつでも、そのキーをクエリ文字列としてコピーして貼り付けることができます。また、mod_rewrite を使用してクエリ文字列を隠したとしても、賢いユーザーは入力タグを調べることでページにアクセスできます。このようなページを確実に保護する方法は何ですか? クエリ文字列を汚染することなく。

4

1 に答える 1

0

これは、mod_rewrite では確実に実行できません。

とにかくフォームの値が正しく入力されているかどうかを確認してください。値が入力されていない場合は、次のようにリダイレクトします

header('Location: elsewhere.html');

または、代わりに単に別のビューを返します。

于 2013-04-19T06:09:55.127 に答える