- WebにおけるjQueryの影響力は明らか
- 2006年に初めて紹介されて以来、Web開発者にとってすぐに定番ツールとなった
- HTMLドキュメントの操作、イベント処理、アニメーションなどを単純化する
- Web標準とブラウザー機能の発展に継続的に大きな役割を果たしてきた
- 最新のJavaScriptフレームワークの登場により、新規プロジェクトでjQueryを選ぶ開発者は減ったが、世界全体での利用量は依然として非常に高い
- IDC調査の結果分析によると、全Webサイトの90%がjQueryを使用している
- そのうち約3分の1が古いバージョンを使用している
- jQueryチームとOpenJS Foundationは、Healthy Web checkupキャンペーンの一環としてこれを解決するために取り組んでいる
- このガイドは、jQueryのバージョンを最新に保つことが重要な理由を説明し、アップグレード手順を案内する
セキュリティのためにjQueryのアップグレードが重要な理由
- セキュリティ脆弱性
- jQueryのコードベースには、XSSからRCEまでさまざまな脆弱性が存在しうる
- 発見され次第、jQueryチームはパッチとアップデートを提供している
- 最新バージョンにアップグレードすれば、これらのセキュリティ修正が適用され、攻撃者による悪用リスクを減らせる
- セキュリティのベストプラクティス
- 新しいjQueryバージョンには、一般的なセキュリティ脅威を緩和するためのベストプラクティスや改善が組み込まれている
- アップグレードすることで、こうしたベストプラクティスを採用し、アプリケーションのセキュリティ態勢を強化できる
- コンプライアンス要件
- 多くの業界や規制フレームワークでは、ソフトウェアを最新に保ち、既知のセキュリティ脆弱性へ迅速に対処することが求められる
- jQueryをアップグレードしてセキュリティ問題を解決しなければ、これらの要件を満たせない可能性がある
ブラウザーサポート
- jQuery 1.x、2.x、3.xでは、それぞれサポートされるブラウザーの一覧が異なる
- しかし現在のブラウザー市場の利用状況を考えると、IE 9+ などjQuery 3.xがサポートするブラウザーでほとんどの場合十分である
- jQuery 4.xは、MSが正式なサポート終了を発表したにもかかわらず、IE11を引き続きサポートする予定である
jQueryをアップグレードする方法
- jQueryチームは、jQueryのアップグレードをできるだけ簡単にするためにjQuery Migrateプラグインを提供している
- これは、ブラウザーのコンソールに互換性問題の特定と修正に使える警告メッセージを生成する開発ツールである
- 古いコードが新しいバージョンのjQuery上でも動作し続けるようにしつつ、互換性問題を解決できるよう、非推奨になった機能や動作を一時的に復元する
- jQuery Migrateには1.xと3.xの2つのバージョンがある(2.xはない)
- 一度に使うのは1つのバージョンだけにすべきである
- jQuery 1.9より前のバージョンからアップグレードする場合、順番に両方のバージョンを使う必要があるかもしれない
- たとえば現在のjQueryバージョンが1.4.4の場合
- まずjQuery Migrate 1.xを使ってjQuery 1.12.4へアップグレードし、その後
- jQuery Migrate 3.xを使って最新のjQuery(現時点では3.7.1)へアップグレードする
- 現在のバージョンが2.2.4であれば、jQuery Migrate 3.xだけを使って最新のjQueryへアップグレードできる
jQuery Migrateの使い方
- まずjQueryを読み込んだ後に、jQuery Migrateをページへ追加する
- その後、Webサイトまたはアプリケーションをテストする
- 異なるjQuery APIが使われると、jQuery Migrateは非推奨事項や重要な変更点に関する警告メッセージをコンソールに記録する
- 各警告を1つずつ解消する
- 最後に、コンソールに警告が記録されなくなり、すべての重要な変更点が解決されたら、jQuery Migrateを削除して移行完了となる
- 詳細はjQuery Migrate READMEを参照
jQueryアップグレードガイド
- jQuery Upgrade Guidesは、重要な変更点に関する詳しい情報を探したり、各バージョンの重要な変更点一覧を見たりしたい場合に役立つ
- jQuery 1.9、3.0、3.5のアップグレードガイドには、それぞれのリリースで発生したすべての重要な変更点が列挙されている
- 列挙されている重要な変更点の大半は、おそらくあなたのコードには当てはまらないが、これらのガイドは各変更点に対する文脈と説明を補ってくれる
今後のjQueryバージョンに関する注意点
- jQuery 4.0が近づいており、jQuery 4.xへのアップグレード手順がどうなるのか気になるかもしれない
- 答えはjQuery 3.xへのアップグレードと同じで、1段階で実行できる
- つまり、jQuery 4.xへアップグレードする前にjQuery 3.xへアップグレードしておく必要はない
- jQuery 1.9+から直接jQuery 4.xへアップグレードできる
- jQuery 4.0向けのアップグレードガイドも用意される予定である
GN⁺の見解
- jQueryは多くのWebサイトで今なお広く使われているため、バージョンアップグレードはWeb開発者にとって重要な課題である
- 古いバージョンを使い続けると、新たに見つかった脆弱性にそのままさらされ、性能面の問題も起こりうる
- ただし、古いバージョンのjQueryを使っているレガシーシステムでは、アップグレードに相当な時間とコストがかかる可能性がある
- こうした場合は、セキュリティパッチのみを適用するなどの方法でリスクを下げていくのも一つの手である
- Migrateプラグインなどを活用すれば比較的容易にアップグレードできるが、互換性の問題が生じる可能性はある
- とくにjQueryへの依存度が高いlegacyコードであれば、なおさらそうだろう
- これを解決するには段階的なマイグレーションが必要である
- 新しいプロジェクトなら、そもそもjQueryに依存しない方向で設計するほうが有利かもしれない
- Vanilla JSや最新のフロントエンドフレームワークを活用するほうが将来志向である
- jQueryを活用してきた開発者なら、この機会に新しい技術へ挑戦してみることも、自分の能力拡張に役立つだろう
3件のコメント
jQuery をアップグレードしない、またはセキュリティ問題を解決しない場合
--> jQuery をアップグレードしないか、セキュリティ問題を解決しない場合