安全でないアプリは、ユーザーとシステムにさまざまな種類の損害をもたらす可能性があります。悪意のある者が脆弱性やセキュリティ機能の欠如を悪用して損害を与えることを、攻撃と呼びます。このガイドでは、さまざまな種類の攻撃について説明します。これにより、アプリケーションを保護する際に注意すべき点を確認できます。
アクティブ攻撃とパッシブ攻撃
攻撃は、アクティブとパッシブの 2 種類に分けられます。
進行中の攻撃
アクティブ攻撃では、攻撃者はアプリケーションに直接侵入しようとします。不正使用の方法はさまざまです。偽の ID を使用して機密データにアクセスする(マスカレード攻撃)方法や、大量のトラフィックでサーバーをフラッディングしてアプリケーションを応答不能にする(サービス拒否攻撃)方法などがあります。
転送中のデータに対してアクティブな攻撃が行われることもあります。攻撃者は、ユーザーのブラウザに届く前にアプリデータを変更し、サイトに変更された情報を表示したり、ユーザーを意図しないリンク先に誘導したりする可能性があります。これはメッセージの変更と呼ばれることもあります。

パッシブ攻撃
パッシブ攻撃では、攻撃者はアプリケーションから情報を収集または学習しようとしますが、アプリケーション自体には影響しません。

たとえば、誰かが友だちや家族との会話を盗聴し、プライベート ライフ、友だち、よく行く場所に関する情報を収集しているとします。ウェブ トラフィックでも同じことができます。攻撃者は、ブラウザとサーバー間のデータをキャプチャして、ユーザー名とパスワード、ユーザーの閲覧履歴、交換されたデータを収集できます。
攻撃に対する防御
攻撃者は、管理者やユーザーに気付かれることなく、アプリケーションに直接害を及ぼしたり、サイトに対して悪意のある操作を実行したりできます。攻撃を検出して保護するメカニズムが必要です。
残念ながら、アプリケーションを 100% 安全にするための単一のソリューションはありません。実際には、攻撃を防いだり、遅らせたりするために、多くのセキュリティ機能と手法がレイヤで使用されます(これを多層防御と呼びます)。アプリケーションにフォームが含まれている場合は、ブラウザ、サーバー、データベースで入力をチェックできます。また、HTTPS を使用して転送中のデータも保護します。
まとめ
多くの攻撃はサーバーにヒットすることなく発生するため、攻撃が発生しているかどうかを検出するのが難しい場合があります。幸い、ウェブブラウザには強力なセキュリティ機能がすでに組み込まれています。詳しくは、次のトピック「ブラウザによる攻撃の軽減方法」をご覧ください。