最近、サーバーにWAF(ウェブアプリケーションファイアーウォール)が標準搭載されることが増えてきました。
SQLインジェクション等のハッキングとかの攻撃をブロックできるのは確かにすごく便利で安全です。
でも、困ってしまうのが誤検知なんですよね。
最近も、当社で運営するウェブサイトにアクセスしようとしたら、なんとアクセスをブロックされてしまいました…
一般のユーザーさんのアクセスについては問題なかったのですが、社内からアクセス出来ないのは困ります。
そこで、.htaccessを使って、WAFの一部を無効にする方法を見つけましたので、ご紹介します。
検出シグネチャとは、WAFが検出した不正アクセスのルール名のことです。
たとえば、「xss-tagclose2」とか、「xss-try-1」「sqlinj-9」などのことです。
sqlinj-Xの場合だと、名前から推測できる通り、SQLインジェクションだと推測されているわけですね。
この特定のシグネチャをオフにすれば解決出来る場合、.htaccessに以下のように記述します。
1 2 3 |
<IfModule mod_siteguard.c> SiteGuard_User_ExcludeSig sqlinj-13 </IfModule> |
SiteGuard_User_ExcludeSig の後ろに除外したいシグネチャを入れればOKです。
ただし、この設定をした場合、その検出ルール全体がオフになってしまいますので、セキュリティが低下してしまう可能性があります。
そこで、今回は、別の方法として、IPアドレスで除外設定をすることにしました。
まず、自分のIPアドレスを調べます。
IPアドレスがわかったら、.htaccessに以下の通り記述します。
1 2 3 |
<IfModule mod_siteguard.c> SiteGuard_User_ExcludeSig ip(192.168.10.1) </IfModule> |
192.168.10.1の部分を除外したいIPアドレスに置き換えてください。
もし、2つ以上のIPアドレスを除外したい場合は、以下のように並べて記述すればOKです。
1 2 3 4 |
<IfModule mod_siteguard.c> SiteGuard_User_ExcludeSig ip(192.168.10.1) SiteGuard_User_ExcludeSig ip(192.168.10.101) </IfModule> |
今回はです。