私はHttpServerを制御できますが、そこにあるApplicationServerまたはJavaアプリケーションを制御することはできませんが、それらのアプリケーションの特定のページへの直接アクセスをブロックする必要があります。正確には、ユーザーが適切なサーブレットに直接GET/POST HTTPリクエストを発行するフォームへのアクセスを自動化することは望ましくありません。HTTP_REFERERを使用してサイトの内部へのユーザーアクセスをブロックします
したがって、HTTP_REFERER
の値に基づいてユーザーをブロックすることにしました。結局のところ、ユーザーがサイト内をナビゲートしている場合は、適切なHTTP_REFERER
を持っています。まあ、それは私が思ったものでした。
私が言うの.htaccessファイルに書き換えルールを実装:私はサイトをナビゲートしますが、「にservlet1」に直接GETリクエストを発行していないユーザーへのアクセスを禁止することが期待または「
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} !^http://mywebaddress(.cl)?/.* [NC]
RewriteRule (servlet1|servlet2)/.+\?.+ - [F]
servlet2 "サーブレットを使用します。しかし、正規表現(servlet1|servlet2)/.+\?.+
がまったく動かなかったので私の期待は突然終了しました。
私はその表現を(servlet1|servlet2)/.+
に変更すると本当に失望し、サイトを操作したかどうかにかかわらずユーザーがブロックされてしまったようにうまくいきました。
私の質問は次のとおりです。アプリケーションを変更するアクセス権や特権/時間がない場合、特定のページに直接アクセスできる「ロボット」を許可しないでください。