最近流行っているサイト内検索スパムに立ち向かう
最近流行りの内部検索スパム
2021年05月09日にヤンマガの、ごくちゅう!のログインしないと見れない部分を見たいけど、ログインできないなと検索していて、検索結果がスパムに汚染されていると気が付きました。
ちなみにログイン出来なかったのは一時的なシステムトラブルで、特にFirefoxが悪いとかの問題ではありませんでした。
ログインできないことと、検索結果が汚染されていることをそれぞれ別件でヤンマガに伝えました。
しかしそれから、問題のスパムはヤンマガだけではなく広範囲に広がってきていることを感じています。
特にwebフレームワークなどは関係なく、クエリだけで検索できるサイト全てに問題が発生しているようです。結果としてWordPressが攻撃対象になることが多いようですが。
ヘンなキーワードで検索しなければ良いのでは? と思うかもしれませんが、たくさんワードを散りばめているため、技術用語検索をしても引っかかることがあります。
元々の検索エンジン優先度が高いサイトに埋め込んでいるため、検索結果上位にランクインすることもしょっちゅうです。
対処療法として検索結果が0件の場合404 Not Foundを返す
とりあえずの対処療法として、検索結果が0件の場合HTTPステータスコードを404 Not Foundにするというものがあるでしょう。
現在の内部検索スパムは大量の文字列を送り込んでくるので、基本的に検索結果は0件になることが多いです。
よって、その場合404 Not Foundを返すことでGoogleにインデックスさせないことで対処可能です。これはスパム関係なく検索エンジンに対して行儀の良い態度ですね。意味のない結果を検索エンジンに記録させないのですから。
ヤンマガにもこの対処方法をお問い合わせで提案しました。現在確認したら検索結果0件の場合404になっていました。
SYAKERAKE でも現在この対処を採用しています。
しかしこの手法は何かしらの検索結果が存在している場合に無力です。まあ内部検索スパムの性質上長文を入力してくるので、そうそう引っかかることはないと思いますが…
検索クエリを一切表示しない過激な対処方法
検索クエリを検索結果ページタイトルにも表示せず、ページにも埋め込まないという手法もあるでしょう。これでスパム内容は表示されません。
しかしユーザの使い勝手的がめちゃくちゃ悪くなるという欠点が強すぎますね。複数タブで検索した時にタブが何も分からなくなってしまいます。検索クエリの打ち間違いにも気が付きにくくなりますね。また検索エンジンに登録された時にページの内容が意味不明になってしまいますね。
この対処は無しでしょう。
サイトの内容によっては検索ページをインデックス対象外にすることで解決
ブログなどの検索結果ページが重要ではないサイトの場合、検索結果ページをrobots.txtなどで除外してしまうのが、手っ取り早く完全な対処になるでしょう。
しかしニコニコ動画やPixivのようなUGC(User Generated Content)を主体とするサイトでは、検索結果ページを積極的に検索エンジンに表示させたいため、この手法は使えません。
内部検索スパムを完全に防ぐことは出来ない
よってUGCサイトにおいて内部検索スパムを完全に排除することは困難と言えるでしょう。ただ現在の内部検索スパムは長文を入力してくるため、 0件結果で404 Not Foundを返すことである程度対策は出来ています。
本来はGoogleサイドがスパム処理を行って、このような形式のスパムを気にしなくても良いようにしてくれるのが理想なのですが。
最近のたけのこのようなスパムサイト乱立もありますし、ちゃんとスパム対策を行ってほしいですね…