SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

JavaScriptのセキュリティ問題と対策

JavaScriptコーディング時のセキュリティ対策

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本稿では、JavaScriptのコーディングにおける潜在的なセキュリティ上の問題と、その回避方法を紹介します。Web開発者としてのキャリアを積んでいくと、いずれはぶつかるのがセキュリティ問題です。その理解に、本稿が少しでも役立てば幸いです。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 Web開発者としてのキャリアを積んでいくと、いずれはセキュリティ上の問題に遭遇するでしょう。JavaScriptの開発元は数多くの大きなセキュリティホールを見つけては解決してきましたし、ブラウザのベンダ各社は自らセキュリティホールを塞ぐ努力をし、ブラウザ操作のセキュリティを保証するための手段を追加してきました。JavaScriptには、それ自体にセキュリティのためのアプローチがいくつか用意されています。それぞれに長所と短所があるものの、全体として見れば、いずれもかなり成功しています。いくつかのセキュリティ機構はJavaScriptインタプリタに含まれており、またブラウザ自体に含まれているものもあります。開発を始めるときには、何らかのセキュリティ機構の実装が必ず求められます。セキュリティ上の問題点を考慮しておかないと、改竄という問題を招くことになります。これは実際に起こり得ることなので、放置してはいけません。開発時にセキュリティを軽んじると、そのWebサイト(およびそのWebサイトを公開している企業)は改竄の危険にさらされます。セキュリティホールのために危険度が高いという噂が立てば、そのWebサイトのコンテンツはユーザーに利用されなくなるでしょう。

 ブラウザはオペレーティングシステムにつながっています。つまり、ユーザーのコンピュータのファイルシステムは悪意あるユーザーのターゲットになり得るということです。JavaScriptを使ってユーザーのディレクトリリストにアクセスすることは完全に可能です。ハッカーはそのことを知っており、これを常套手段として利用しています。セキュリティはまずサーバから始まります。ユーザーはそこからコードをダウンロードし、自分のマシンで実行するからです。そのため、サーバをしっかり管理し、定期的に監視する必要があります。コードをクリーンにし、スレッドが外部アクセスにさらされないようにする必要があります。これは開発者の責任です。

 ユーザー側の責任としては、コンテンツを信頼して自分のマシンで実行するかどうかを判断することが挙げられます。コンテンツを信頼してスクリプトを実行するか実行しないかをユーザーが決められるという機能は、ブラウザに含まれる機能であり、ブラウザの環境設定やユーザー設定で指定できます。

フレームの問題

 インターネットで最初にフレームが実装されたとき、最初の重大なセキュリティホールの存在がハッキングコミュニティに知られるまでに丸2か月かかりました。フレームがどのように使われてセキュリティホールが生じたのかを理解するためには、まずフレームそのものを理解する必要があります。

 Webページでフレームが描画される手順は次のようになります。

  1. 描画するフレームについての命令を含んだページがロードされる。
  2. フレームの描画方法を決めるアドレスと詳細(境界のプロパティやフレーム自体の配置など)がブラウザに与えられる。
  3. フレームの内容となるドキュメントがフレームにロードされる。
  4. ページがブラウザのウィンドウに描画(表示)される。

 この手順では、他のドメインの他のサーバからWebページをロードして実行することが可能です。あるドメインからのJavaScript変数を使って、Webページを構成する他のフレーム内で使用される他のドメインからのWebページに対する検査と修正を行うことができるのです。この問題に対処するための最初の方策は「同一生成元ポリシー(Same Origin Policy)」で、これはNetscape NavigatorとInternet ExplorerとOperaで採用されました。

次のページ
同一生成元ポリシー:Internet Explorer方式のセキュリティ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Thomas Valentine(Thomas Valentine)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3583 2009/03/13 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング