JavaScriptセキュリティの基礎知識
第1回 Webセキュリティのおさらい その1
はじめに
みなさんこんにちは,
周知のとおり,
利用者視点だけでなく,
- CoffeeScriptやTypeScriptに代表されるaltJSと呼ばれる言語処理系の登場
- ES2015やES2016といったECMAScript
(ここではJavaScriptと同義と捉えておきます) の言語仕様の拡充 - それらを早い段階で現実的に利用可能にするBabelなどのトランスパイラの存在
- AngularJSやReactといったモダンなフレームワークの登場
JavaScriptを取り巻く以上のような環境の変化のなかで,
そして,
このような背景をふまえ,
JavaScriptのセキュリティに関する具体的な説明を始める前に,
能動的攻撃と受動的攻撃
Webアプリケーションに関する攻撃は,
能動的攻撃とは,
一方,
また,
ブラウザ上で実行されるJavaScriptコードに欠陥がある場合には,
Webアプリケーションで代表的な4つの受動的攻撃
Webアプリケーションで代表的な受動的攻撃としては,
- クロスサイトスクリプティング
(XSS) XSSとは,
動的にHTMLを生成するWebアプリケーションにおいて, データをエスケープせずに出力しているために, 生成されるHTMLに攻撃者の作成したHTML断片やJavaScriptコードが埋め込まれてしまう脆弱性です。攻撃者の作成したJavaScriptがサイトを訪問したユーザーのブラウザ内で実行されるという, まさに受動的攻撃の代表格とも言えます。 - クロスサイトリクエストフォージェリ
(CSRF) CSRFとは,
たとえば掲示板の書き込みなどのように, リクエストを発行することでWebアプリケーションに永続的な副作用を持つ機能に対して, 攻撃者のサイト上に設置されたformなどからリクエストを発行させる攻撃です。 - オープンリダイレクト
オープンリダイレクトは,
ほかのページへのリダイレクト機能を持つWebアプリケーションにおいて, 攻撃者が指定した任意のURLへのリダイレクトが可能になってしまう問題です。 - クリックジャッキング
クリックジャッキングとは,
攻撃対象となるWebサイトを透明にした状態で, iframeなどを用いて攻撃者の用意した罠サイト上に設置することで, ユーザーにクリックなどの錯誤を発生させる攻撃手法です。
これらの攻撃は,
- そのWebアプリケーションが取り扱っている機密情報を奪取する
- Webアプリケーション内に攻撃者が用意した偽コンテンツを表示する
- Webアプリケーションに対する操作を,
ユーザーの許可を得ることなく, 攻撃者の意図にしたがって実行させる
といったような被害がユーザー自身に発生するものとなります。
次回は,
関連記事
- 第4回 ユーザのインタラクション(Controller, Component)
- 2014年12月第4週号 1位は,HTML5で作るハイブリッドなアプリ開発のヒント,気になるネタは,iPadをMacのセカンドモニタ化するアプリDuet Display、有線接続で低遅延
- Socket.IOの作者Guillermo Rauch氏,新開発のファイルアップロードライブラリ「Party」を紹介 ~ 東京Node学園祭2014 基調講演
- 2014年11月第1週号 1位は,WebデザイナーがGoogleのマテリアルデザインから学ぶべきこと,気になるネタは,リコー、全天球カメラ RICOH THETA の新モデル発表。動画撮影、WiFi転送高速化
- プログラマたちのバイブル,パーフェクトシリーズ全巻がついに電子書籍化!最新『改訂2版 パーフェクトJava』は紙・PDF版本日同時発売!