デジタルマーケティングTips

貴社のサイトも要注意! jQuery脆弱性対策のポイント

Webサイト内で古いjQueryを使っている場合は、脆弱性によるサイト改竄等のおそれがあるため、最新版に置き換える改修が必要です。本記事では改修が必要な理由と実際の作業の流れを解説します。

要点

現代のWebサイトに必要不可欠な「jQuery」とは

jQuery新しいウィンドウで開きますは、2006年に初版が発表され、現在では世界中のWebサイトで使用されているJavaScriptライブラリです。JavaScriptコードの記法・構文を簡略化することで開発効率が上がること、ブラウザ間での動作の差異や不規則さを抑えられること、jQueryに合わせて開発された各種ライブラリ(jQueryライブラリ)を動かすための基礎動作環境として必要になることから、今日のWeb制作においては欠かせないライブラリの一つに挙げられます。

旧バージョンjQueryの脆弱性

ところがこのjQuery、クロスサイトスクリプティング(XSS)の被害を受ける脆弱性がたびたび指摘されています。取るべき対応策は、jQueryを脆弱性対策済みの最新版に置き換えることです。
(本記事執筆時の最新版は3.5.1で、それより前のバージョンについてはXSS脆弱性あり)

※参照:JVN iPedia 脆弱性対策情報データベース
https://jvndb.jvn.jp/ja/contents/2020/JVNDB-2020-005538.html新しいウィンドウで開きます
https://jvndb.jvn.jp/ja/contents/2020/JVNDB-2020-005056.html新しいウィンドウで開きます
https://jvndb.jvn.jp/ja/contents/2020/JVNDB-2020-004854.html新しいウィンドウで開きます
https://jvndb.jvn.jp/ja/contents/2018/JVNDB-2018-016326.html新しいウィンドウで開きます
https://jvndb.jvn.jp/ja/contents/2015/JVNDB-2015-008097.html新しいウィンドウで開きます

※参照:jQuery公式ブログ
https://blog.jquery.com/2020/05/04/jquery-3-5-1-released-fixing-a-regression/新しいウィンドウで開きます
https://blog.jquery.com/2020/04/10/jquery-3-5-0-released/新しいウィンドウで開きます

脆弱性を放置するとどうなるか

クロスサイトスクリプティング(XSS)新しいウィンドウで開きます」は、サイトの脆弱性をついたパラメーターつきのURL等により、他者が外部から自サイト内にHTMLコードを挿入する行為です。これにより、他者が自サイトの内容を改竄する可能性が出てくるため、虚偽の情報流布、なりすましによる機密情報や個人情報の詐取などが起こりえます。

最悪の場合、自社の信頼やブランド価値の大幅低下、他人の犯罪への加担等による刑事事件等に発展しかねません。

単にファイルを置き換えればいいわけではない

jQueryのバージョン移行はサイト全体への影響を伴うもので、単なるjQueryファイル単体の置き換えで完了するものではありません。

(1)JavaScriptのコード書き換え

jQueryのバージョンが上がると、仕様の変更や古い機能の廃止新しいウィンドウで開きますに伴い、Webページソース内のJavaScriptも書き換えが必要になります。

(2)他のプラグインの置き換え

現在のWeb制作は表示演出やフォーム最適化(EFO)など様々な機能が高度にモジュール化・プラグイン化されており、その多くがjQueryの使用を前提に開発されています。古いページ制作当時のjQuery用に開発されたプラグインは、多くの場合jQueryと一緒に新しいバージョンに置き換える必要があります。開発終了等でjQuery最新版に対応するバージョンが存在しない場合は、代替プラグインへの移行や独自開発等で対応します。

移行作業の流れ

全体の作業コストは、サイト規模(ページ数)、JavaScriptコードの量、移行前のjQueryのバージョン(古いほど作業量増)に応じて変動します。

(1)JavaScript使用箇所の調査

まず、サイト内の全ページについて、JavaScript使用箇所の調査→JavaScriptソースファイルの調査→jQueryを使用したJavaScriptプラグイン使用箇所の調査を行います。

(2)要修正箇所の調査・修正

jQueryはバージョンアップの際に一部の旧仕様の関数等が廃止されることがあります。このため、移行後にエラーになる箇所の調査と、それらを代替処理に置き換える修正を行います。

(3)jQueryおよび他のプラグインのバージョンアップ

jQueryおよび他のJavaScriptプラグインについて、新バージョンのダウンロードおよびインストールを行います。

外部サーバーからこれらを直接読み込んでいる場合は、読み込み先URLの変更を行います。

(4)動作検証

ページの各機能が問題なく動作しているか、表示の崩れがないか等を、サイトで表示保証対象にしているブラウザで検証します。

別のサイト改修の一環として対応するという手も

jQueryの脆弱性対策は、リスク回避効果はあっても、それ自体がビジネスにプラスの効果をもたらすわけではありません。検討時にそこが懸念材料となる場合は、別のサイト改修に必要な処理の一部としてjQueryのバージョンアップを含める、という方法もおすすめです。

  • グローバルナビ(サイト共通メニュー)の機能改良
  • サイトの基本デザインの変更
  • その他JavaScriptプラグインの追加/変更を要する機能改修
  • サイト全体のリニューアル

jQueryの脆弱性対策そのものを主要素とするよりは、Webサイトの改良に伴ってどこかで必要になる対応という扱いにしておけば、関係者の納得を得られる形での対応が進めやすくなります。

まとめ

jQueryの脆弱性対策は、必ずしも低コストで済むとは限りませんが、リスクを考えるとそのまま放置することもできません。できるだけ早いうちに、技術的に信頼できるパートナーと一緒に対応することをお勧めします。サイトの機能改良など、ビジネスにとって前向きな取り組みとセットで進められればより効果的です。

マックスマウスでは、大規模サイトから中小サイトまで、セキュリティに配慮したWebサイト制作・機能改修・リニューアルサービスを、多くの企業様に提供しております。ご興味のある方はぜひお問い合わせください。