Javaアプリの異常を招く“不適切な入力値”とは? 対策はJavaのよくあるランタイムエラーの5大原因【第1回】

起こりがちなJavaの「ランタイムエラー」とその回避方法を把握しておくことは重要だ。特に頻出する、入力値に基づくランタイムエラーとその解決策を紹介する。

2022年06月13日 05時00分 公開
[Cameron McKenzieTechTarget]

関連キーワード

Java | アプリケーション開発


 その名が示す通り「ランタイムエラー」(実行時エラー)は、アプリケーション実行中に発生するエラーだ。アプリケーションが所定の要件から逸脱した不適切な動作をするときは、ランタイムエラーが発生している可能性がある。

 プログラミング言語および実行・開発環境「Java」のランタイムエラーでアプリケーションが急停止した場合、Javaエンジニアは何をすればよいのか。本連載は、Javaエンジニアが遭遇しやすいランタイムエラーの5つの原因と、それに対処する手順や戦略を解説する。

1.“不適切”な入力値

 エンドユーザーの入力がアプリケーションの不適切な動作を招く例は、数え切れないほど存在する。Web掲示板が、エンドユーザーの入力した不等号(「<」「>」)などの特殊文字をそのまま受け取った際、意図しない内容を表示してしまうのが典型的な例だ。標準的な文字コード「ASCII」準拠の入力しか受け取らないことを想定したテキスト処理アプリケーションが、絵文字や規格外の文字列を受け取った場合、停止してしまう例もある。

 アプリケーションの入力欄に実行可能なデータベース操作クエリを入力する「SQLインジェクション」も主な例だ。SQLインジェクションはアプリケーションの停止だけでなく、アプリケーションのデータ制御を攻撃者に明け渡す危険性もある。

 こうした事態を避けるには、入力される可能性がある全種類のデータを、アプリケーションが解釈できる安全な値に変換する「サニタイズ」が欠かせない。Javaによるアプリケーション開発では、開発者は「Apache BVal」「Hibernate Validator」などのライブラリ(プログラム部品群)を用いることでサニタイズを実装可能だ。

TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news061.jpg

マーケターの87%は自分の仕事が生成AIなどのテクノロジーに取って代わられることを懸念――Gartner調査
Gartnerがマーケティング人材に関する調査を実施。環境的不確実性と技術的複雑性の中で、...

news058.jpg

Z世代が旅に求める「令和的非日常」とは?
JTBコミュニケーションデザインと伊藤忠ファッションシステムが、Z世代の旅に関する意識...

news094.jpg

電通が「AI×クリエイティブ」の強みを生かしたビジネスコンサルティングサービスを提供開始
電通は「AI×クリエイティブ」で企業の事業やサービスの開発を支援する新サービス「AIQQQ...