teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

0回答

201閲覧

URLに「:mal」が含まれるアクセスをブロックするには?

shikoniki

総合スコア0

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2025/06/09 10:44

編集2025/06/09 10:45

0

0

現在、Webアプリケーションへの不正アクセス対策として、URLに特定の文字列が含まれるアクセスをブロックする方法を検討しています。具体的には、URLに「:mal」という文字列が含まれる場合にアクセスをブロックしたいと考えています。

様々な方法を調べて試してみたのですが、うまく動作させることができていません。

試したこと
.htaccess を使用したブロック:
RewriteEngine On
RewriteCond %{REQUEST_URI} :mal
RewriteRule ^(.*)$ - [F,L]
この設定を.htaccessファイルに記述し、Webサーバーのルートディレクトリに配置しました。しかし、期待通りに「:mal」を含むURLへのアクセスがブロックされませんでした。アクセスログを確認すると、依然として「:mal」を含むURLへのアクセスが記録されています。

Nginxの設定変更
現在使用しているWebサーバーはNginxです。そこで、Nginxの設定ファイル(nginx.conf)に以下のような設定を追加してみました。

server { ... if ($request_uri ~ ":mal") { return 403; } ... }

こちらも同様に、設定を反映させた後も「:mal」を含むURLへのアクセスがブロックされませんでした。

PHPでWebアプリケーションを開発しているため、アプリケーションレベルでURLを検査し、:malが含まれる場合はアクセスを拒否する処理を追加することも検討しました。しかし、この方法では、既にWebサーバーに負荷がかかってしまっているため、なるべくサーバー側で処理したいと考えています。

上記の.htaccessやNginxの設定で、なぜ「:mal」を含むURLのアクセスがブロックされないのでしょうか?設定ファイルに誤りがあるのでしょうか?
.htaccessやNginx以外に、URLに特定の文字列が含まれるアクセスをブロックする効果的な方法はありますか?
Webアプリケーションファイアウォール(WAF)の導入も検討していますが、他に何か良い対策があれば教えてください。

ご教授いただけると幸いです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2025/06/09 12:45

request_uri には、 ? より後ろの querystring やパラメータ部分は含まれていないと思いますが、一致させたい文字列は、どの部分に含まれているのでしょうか。 example.com 等の例示用ドメインを用いて、一致させたい URL の例を質問に記載していただけないでしょうか?
otn

2025/06/10 12:48 編集

何故 .htaccess が効かないのかの部分だけの回答です。 .htaccess は Apacheの機能なので、サーバーがApacheでなおかつ.htaccessを有効にした場合だけ有効です。サーバーがNginxとのことなので全く関係ないファイルです。
otn

2025/06/10 12:38 編集

↑のはずですが、もしかするとApache互換の機能をNginxに追加するプラグインとかあってそれをつかっているとかですかね?念のためAIに聞いてみると、あるという回答でした。 > htaccess-for-nginx プラグイン 調べてないので、どの程度の互換なのか知りませんが。もし、完全互換なら、%{REQUEST_URI} は、パス部分だけでクエリーは含みません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問