Flashを廃止するというGoogleの 発表は 、Flashの棺に最後の釘を刺した。
それ以前から、 スティーブ・ジョブズ のような著名なテクノクラートは公然と Flash に反対していました。
Flash の終焉と HTML5 の台頭により、モバイルと PC の両方に同様に互換性のある、見た目も機能も優れた Web サイトを特徴とする新しい時代が到来しました。
データの送受信も以前よりずっと簡単になりました。
ただし、克服する必要がある独特の課題もあります。
これの利点は、html5 がクロスブラウザーのサポートと機能をまったく新しいレベルに引き上げることです。
特定のブラウザーは個々のサイト要素をサポートしていないため、外観を維持するためにサイト要素を変更しなければならないのは面倒です。
最新のブラウザはすべてサポートされているため、HTML5 ではその要件が破棄されます。
クロスオリジンリソース共有
クロスオリジン リソース共有 (CORS) は、html5 の最も影響力のある機能の 1 つであり、間違いやハッカー攻撃の可能性を最も予感させる機能でもあります。
CORS は、 サイトがオリジンを定義し、コンテキストに応じた対話を容易にするために役立つヘッダーを定義します。
html5 CORS では、 同一オリジン ルール と呼ばれるブラウザ上の基本的なセキュリティ メカニズムがミュートされます。
同一生成元ポリシーでは、両方の Web ページの生成元が同じである場合にのみ、ブラウザーは Web ページが 2 番目の Web ページのデータにアクセスすることを許可できます。
起源とは何ですか?
オリジンは、URI スキーム、ホスト名、ポート番号の組み合わせです。このポリシーは、悪意のあるスクリプトが実行され、Web ページのデータにアクセスすることを防ぎます。
CORS は、コンテキストに応じた対話を可能にするために、さまざまなサイトがデータにアクセスできるようにすることで、このポリシーを緩和します。
これにより、ハッカーが機密データを入手する可能性があります。
例えば、
Facebook にログインし、ログインしたまま別のサイトにアクセスすると、緩和されたクロスオリジン ポリシーを利用して、攻撃者が情報を盗み、あなたの Facebook アカウントに対して何でもできる可能性があります。
もう少し生ぬるい話になりますが、ユーザーが銀行口座にログインしていてログアウトするのを忘れた場合、ハッカーはユーザーの資格情報や取引にアクセスしたり、新しい取引を作成したりする可能性があります。
ブラウザはユーザーの詳細を保存することにより、セッション Cookie が悪用される可能性のある状態を残します。
ハッカーはヘッダーに干渉して、未検証のリダイレクトをトリガーすることもできます。
ブラウザが信頼できない入力を受け入れると、検証されていないリダイレクトが発生する可能性があります。これにより、リダイレクト要求が転送されます。信頼できない URL を変更して悪意のあるサイトへの入力を追加し、実際のサイトと同一に見える URL を提供することでフィッシング詐欺を開始する可能性があります。
未検証のリダイレクトおよび転送攻撃は、アプリケーションのアクセス制御チェックに合格する URL を悪意を持って作成し、通常はアクセスできない特権機能に攻撃者を転送するために使用されることもあります。
このようなことが起こらないように開発者が注意すべきことは次のとおりです。
- 開発者は、開くために URL が渡されることを確認する必要があります。これらがクロスドメインである場合、コード インジェクションに対して脆弱になる可能性があります。
- また、URL が相対 URL であるか、プロトコルを指定しているかにも注意してください。相対 URL はプロトコルを指定しません。つまり、HTTP で始まるか https で始まるかはわかりません。ブラウザは両方が true であると想定します。
- Origin ヘッダーは簡単に偽装される可能性があるため、Access Control チェックで Origin ヘッダーに依存しないでください。
特定のドメインで CORS が有効になっているかどうかはどうすればわかりますか?
ブラウザで開発者ツールを使用して ヘッダーを調べる ことができます。
クロスドメインメッセージング
クロスドメイン メッセージングは、クロスサイト スクリプティング攻撃を防ぐために、ブラウザでは以前は禁止されていました。
これにより、Web サイト間の正当な通信も妨げられ、現在ではクロスドメイン メッセージングが大量に行われています。
Web メッセージングにより、さまざまな API が簡単に対話できるようになります。
クロススクリプト攻撃を防ぐために、開発者が行うべきことは次のとおりです。
メッセージの予想される発信元を明記する必要があります
- 元の属性は常にクロスチェックされ、データが検証される必要があります。
- 受信ページは常に送信者のorigin属性をチェックする必要があります。これは、受信したデータが実際に予期された場所から送信されたものであることを確認するのに役立ちます。
- 受信ページでは、データが必要な形式であることを確認するために入力検証も実行する必要があります。
- 交換されるメッセージはコードではなくデータとして解釈される必要があります。
より良いストレージ
html5 のもう 1 つの特徴は、より優れたストレージを可能にすることです。 Cookie に依存してユーザー データを追跡する代わりに、ブラウザーはデータを保存できるようになります。
HTML5 では、複数のウィンドウにわたる保存が可能で、セキュリティが向上し、ブラウザを閉じた後でもデータが保持されます。ローカルストレージはブラウザプラグインなしで可能です。
これはさまざまな種類のトラブルを引き起こします。
開発者は、攻撃者による情報の窃取を防ぐために、次のことに注意する必要があります。
- サイトにユーザーのパスワードやその他の個人情報が保存されている場合、ハッカーによってアクセスされる可能性があります。このようなパスワードは、暗号化されていない場合、Web ストレージ API を介して簡単に盗まれる可能性があります。したがって、すべての貴重なユーザー データを暗号化して保存することを強くお勧めします。
- さらに、多くのマルウェア ペイロードは、トランザクション情報や財務情報などのユーザーに関する情報を見つけるために、ブラウザーのキャッシュとストレージ API のスキャンをすでに開始しています。
まとめ
HTML5 は、Web 開発者が変更を加えて安全性をさらに高めるための優れた機会を提供します。
ただし、安全な環境を提供する作業の大部分はブラウザーにかかっています。
さらに詳しく知りたい場合は、「 1 時間で HTML5 を学ぶ 」コースをご覧ください。