ECcubeで構築しているECサイトで、スパム購入が多発してしまいました。
ログを確認したところ、やはり海外からのアクセスです。
reCAPTCHAの導入でもいいのですが、一旦、海外サイトからのアクセスの遮断を行ったので、その備忘録。
対応方法は、.htaccessにて海外からのアクセスを遮断。
.htaccessに記載するコード
ドキュメントルートディレクトリ(public_htmlなど)直下の.htaccessに以下を記載。
<IfModule mod_geoip.c> GeoIPEnable On Order deny,allow deny from all SetEnvIf GEOIP_COUNTRY_CODE JP AllowCountry SetEnvIf User-Agent "Googlebot" AllowSearchBot SetEnvIf User-Agent "Mediapartners-Google" AllowSearchBot SetEnvIf User-Agent "Slurp" AllowSearchBot SetEnvIf User-Agent "Y!J" AllowSearchBot SetEnvIf User-Agent "bingbot" AllowSearchBot SetEnvIf User-Agent "msnbot" AllowSearchBot SetEnvIf User-Agent "facebookexternalhit" AllowSearchBot SetEnvIf User-Agent "Twitterbot" AllowSearchBot SetEnvIf User-Agent "Hatena" AllowSearchBot SetEnvIf User-Agent "MicroAd" AllowSearchBot Allow from env=AllowCountry Allow from env=AllowSearchBot </IfModule>
コードの説明
・GeoIP機能を有効にする。これにより、アクセス元IPの国を識別できるようになる。
・アクセス拒否、アクセス許可の順に処理を進める。
・まずは、全てのアクセスを拒否。
・許可用の環境変数に日本を追加。
・検索エンジンなどのbot用環境変数に各botを追加。
・許可用環境変数のアクセスに関しては、許可を実行。
という感じですね。
最近、攻撃やスパムが激増してきて、ほんとに迷惑。。。