SHOEISHA iD

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

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

Javaセキュアコーディング入門

スマートフォンアプリへのブラウザ機能の実装に潜む危険
――WebViewクラスの問題について

Javaセキュアコーディング入門(6)

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

対策

 これらの問題について、アプリケーション開発者はどのような対策を行うべきでしょうか。

特定のURLのみに限定する

 もしWebViewクラスで読み込むURLが固定のものや特定ドメインのものなど、限定されたものだけを想定しているのであれば、それのみ許可するように実装すべきです。

 特にWebView#addJavascriptInterfaceを使用する場合は、このような制限を行わないとどこからでもJavaScript経由でメソッドを呼び出されてしまいます。

http/httpsプロトコルのみに限定する

 アプリケーションによってはURLを限定することができない場合もあります。そのような場合、WebViewクラスで読み込むURLのプロトコルをhttp/httpsに限定することにより、先の例で紹介したfileプロトコルを使用したローカルファイルの取得を防ぐことができます。

 これ以外にも、そもそも外部からURLの入力を受け付けないという方法やJavaScriptを有効にしないなど対策方法は考えられます。作成するアプリケーションの実装に合わせて、受け取るURLの検証などの対策を行う必要があります。

まとめ

 WebViewクラスはアプリケーションを開発する上で便利なクラスで、Webサイトや各Webサービスとの連携といったことを考えた場合、欠かすことのできないクラスです。しかし、その使い方を誤ったり仕様を把握していなかったりすると、脆弱性の元になります。

 なお、Javaセキュアコーディングスタンダードにはこれに関連したルールがあります。ルールのサンプルコードとは直接関係はありませんが、考え方は当てはまるのではないかと思います。

 こちらも併せて参照してください。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Javaセキュアコーディング入門連載記事一覧

もっと読む

この記事の著者

熊谷 裕志(JPCERTコーディネーションセンター)(クマガイ ヒロシ(JPCERTコーディネーションセンター))

情報セキュリティアナリスト JPCERTコーディネーションセンターベンチャ企業にてWEBサイトのデザインやシステム開発、Androidアプリケーションの開発などに従事したのち、2011年4月よりJPCERTコーディネーションセンターにて、脆弱性情報の分析やセキュアコーディングの普及活動に携わってい...

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング