運用・信頼性
サイト内容の変更を自動検知するハッシュ比較のしくみを解説
ページの中身が前回点検から変わったかどうかを、機械的に記録する項目です。
内容変更とは何か
ウェブページの内容は、更新作業やCMSでの編集、あるいは第三者による書き換えなど、さまざまな理由で変化します。ページがいつ変化したかを継続的に記録しておくことは、サイトの状態を追う上での基本的な手がかりになります。変化した理由が運営側の意図したものなのか、それとも身に覚えのないものなのかは、記録を積み重ねて初めて判断できるようになります。
どうして大事なのか
この項目には「良い/悪い」の判定基準がなく、変化の有無だけを記録します。とはいえこの記録には、自分やクライアントが行った更新作業が正しく反映されているかを確かめる使い道と、身に覚えのない変更が起きていないかを見張る使い道の、大きく2つの役割があります。日次で記録を取り比較する仕組みがなければ、そのどちらの用途にも使えず、変化があったこと自体に気づく手段がありません。
ここで引っかかるとどうなる
「変更あり」の記録が、自分が更新した覚えのないタイミングで現れた場合は、その内容を確認するきっかけにしてください。CMSの管理画面への不正アクセスによる改ざんや、いたずら書きの追加、フィッシングサイトへ誘導する隠しリンクやコードの埋め込みなどは、多くの場合ページのHTMLに何らかの変化として現れます。一方で、自分やクライアントが更新した直後であれば、その変更が記録されているかどうかを確かめることで、公開作業が意図どおりに反映されたかの確認にも使えます。この項目に合格・不合格の基準はなく、変更が記録されること自体は正常な結果です。
直す方法
変更が検知されたら、まず自分やチームメンバー、クライアントが最近サイトを更新していないかを確認します。心当たりがあれば問題ありません。心当たりのない変更が検知された場合は、実際にページのソースを確認し、見慣れないスクリプトやリンクが追加されていないかをチェックします。あわせてCMSの管理画面へのログイン履歴やユーザー一覧を確認し、不正アクセスの形跡がないかを確認してください。パスワードの変更やプラグイン・CMS本体のアップデートも並行して行うと安心です。
Kotoriではどうやって計測しているか
点検のたびにページのHTMLを取得し、スクリプト(script)やスタイル(style)、コメントといった見た目に直接関係しないノイズ部分を取り除いた上で、余分な空白を整理します。この「正規化」された内容をSHA-256(内容を短い文字列に変換する一方向のハッシュ関数)でハッシュ値に変換し、前回点検時のハッシュ値と比較します。値が一致していれば「変更なし」、異なっていれば「変更あり」として記録するだけの、シンプルな仕組みです。内容がどう変わったかの詳細ではなく、変わったという事実だけを検知します。