将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察
The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...
Javascriptパッケージの量は日々増加しています。これはコミュニティの活動の結果であり、一方では新しいソリューションを要求し、他方では自己開発や実現の一形態としてそれらを生成しています。このような大きな成長は、新しいドアと可能性を開きますが、同時に危険ももたらします。
2018年11月下旬、GitHubコミュニティは、以下の深刻な脆弱性について報告した。 イベントストリーム - での作業を支援するパッケージです。 ノード イベントをより効率的に行うことができた。その特定期間のダウンロード数は週220万以上(Reactは370万)に達し、かなり人気があった。Event-streamとその依存関係は、別のライブラリに依存していた。 フラットマップ・スチーム そのパッケージは、暗号ポケット・マルウェアにアップデートされていた。このマルウェアは、このパッケージがバンドルされたマシン上のユーザーのアカウントから秘密鍵やその他の情報を盗み出すことを可能にした。
結局、flatmap-streamはNPMから削除され、他の多くのライブラリで一時的な問題が発生した。同年5月、コミュニティは ゲットクッキー パッケージの一部であり、他の多くの依存関係にも含まれていた。このような例はいくつもある。 プロジェクトからのものだけではない。 ジャバスクリプト という視点だけでなく、一般的な文脈でも。
プロジェクトでは、できる限り公式のソリューションに頼ることが重要だ。開発プロセスが優れているから脆弱性が低いだけではありません。大規模なコミュニティは、通常、より良いブランドと一緒に提供され、問題をより早く特定し、より重要なことは、良い解決策を見つけるのに役立ちます。
図1 Webpack NPMの動向。
図2. イベントストリームNPMの動向。
パッケージの現在の状態に関する知識は、過去の状態を表していないことがあります。npm trends chart を見れば、実際のパッケージのトレンドがわかります。これは、脆弱性が発見されるような大きなピークだけでなく、与えられたパッケージの一般的な状態も示します (注意: Google Trends の 12 月 24 日から 30 日付近の大きなピークは、ホリデーシーズンを表しますが、これは必ずしも問題を表しているとは限りません)。例として、図1をご覧ください - 1週間あたりのWebpackダウンロードの傾向を表しています。これは、Webpackが安定して安全に使用できるパッケージであることを示唆しています。一方、図 2 では 11 月に大きな落ち込みが見られますが、これはその期間に何か問題が起こった可能性があるという明確なシグナルです (これはすでに分かっていることですが)。
依存関係の状態を確認するための最善かつ最も信頼できる方法は 監査.このコマンドは現在、yarnとnpmの両方でネイティブに利用できるが、それらの最新バージョンが必要である。このコマンドは、現在の依存関係のリストを適切なエンドポイントに送信し、現在の脆弱性や、ドキュメントへの参照を含むその他の使用法の詳細を含む情報を返す。(図3)。
図3. npm auditコマンドの結果例。ソースはこちら: https://docs.npmjs.com
Javascriptで依存関係を管理するのは簡単なことではありません。 したがって、依存関係を賢く慎重に選択することを忘れないでください。現在のプロジェクトを常に監査し、定期的にパッケージを更新してください。
javascriptの依存性と、その問題を解決する方法について詳しく学ぶ、 この記事をご覧ください。
ソース