.htaccessでxoopsのスパムユーザー登録対策

自分が裏方やっているxoopsで構築したサイトで数年前から海外からスパムのようなユーザー登録が毎日何十件(いや100件以上か?)とあり、色々な方法でアクセス制限を掛けてきたんだけど、月に1万ホスト以上からのアクセスがあるので、あまり効果がなく、誤ってスパム登録ではないユーザーを削除してしまう事故も起きてしまい頭を痛めていました。

.htaccessで海外からの全てのアクセスを遮断するのは簡単だけど、海外からサイトにアクセスするユーザーも少なからずいるし、遮断したいのは新規ユーザー登録の時にアクセスするregister.phpだけなんですよね。

契約しているさくらのサーバーでも以下のような対策を取ってくれたんだけど、これはスパムというよりセキュリティ対策で契約ユーザーが特定のファイルを設定出来るようにはなっていませんでした。

http://support.sakura.ad.jp/manual/rs/others/ipfilter.html

この記事を書くにあたって再度↑このページにアクセスして読んでみたら、今見たらヒントになる記述があるんですね~。でも、その時は気づかなかった。

xoops関連のサイトでこのスパムに悩まされている人が多いみたい。XUGJも調べてみたけど新しいバージョンだと対策取れるみたいですがウチのは古いので出来ないし、何だか難しそう。

http://www.xugj.org/modules/QandA/index.php?topic_id=2380

そんなわけで.htaccessについて色々探してみたところ以下のサイトの記述を参考に.htaccessを設定してみたら、それ以降スパムユーザー登録がぱったり無くなりました。

http://www.be-webdesigner.com/technotes/server/htaccess/access_deny.htm

記述内容はこんな感じ。

 ここで制限を掛けたいファイルを指定

<Files ~ “^register\.php$”>
Order deny,allow
Deny from all
allow from .jp
</Files>

意味はregister.phpというファイルについて全てのアクセスを遮断するが.jpは許可するという内容です。

日本のホストで.jpではないのもあると思うので、許可したいホストがあればallowの方へ追加していきます。

次に海外からユーザー登録したい方がいた場合、どうするか…なんですがアクセス制限の対象になった場合、何も設定しないと403 Forbiddenが表示されてしまいます。これを指定したページに飛ばすように設定して起きます。飛ばす方法は調べればすぐにわかるので、ここでは省略します。

飛ばすページにはスパム対策のため海外からのユーザー登録に制限を掛けているので登録希望の方はサイト管理者に連絡するように書き、ホスト名がわからない人もいるので自分のホストが調べられるwebページをリンクしておきます。登録する側からすれば余計な手間がかかることになりますが本気で登録したい人は連絡してくれるだろうと思います。

まあ、今これだけSNSが普及しているので従来のコミュニティサイトは下火で、海外からのユーザー登録というのはレアケースになるのかもしれませんが。

 

今回自分も色々苦労したので、もし他の方のお役に立てればと思い記事にしてみました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です