セキュリティの基本

先にも説明したとおり、演習で作成したServletにはセキュリティ上の問題があります。

プログラミングに起因するセキュリティ問題には以下のようなものがあります。
詳しくは、WEBなどで調べてみてください。

このセクションでは、以下の問題のうち、SQL InjectionとCross Site Scriptingについて 説明します。

名称 説明
Buffer Overflow 確保したメモリ領域(バッファ)を超えてデータが入力された場合に、データがあふれてプログラムが暴走してしまうバグを利用して、 システムダウン・乗っ取りなどをおこなうこと。
Cross Site Scripting 動的にWEBページを生成するアプリケーションのセキュリティ上の不備を意図的に利用し、生成されたWEBページに悪意のあるスクリプトを混入させること。
Parameter Manipulation WEBアプリケーションの期待する値とは別の値を送信し、誤動作をさせること。
Backdoor & Debug Options 開発用、管理者用の秘密の入り口を探し、その機能を利用して悪意のある操作をおこなうこと。
Forceful Browsing 公開されていないファイルに直接アクセスをおこない、情報の改ざん、取得をおこなうこと。
Session Hijacking/Replay セッションIDの生成方法に問題がある場合に、 推測や総当たりによって有効なセッションIDを見つけ、悪用すること。
また、セッションIDの有効期間が長過ぎたり有効期間が設定されてなかったりする場合に、 このセッションIDを再利用すること。
Path Traversal アプリケーションに渡されるパラメータを基にファイルの読み込みをしている場合に、 不正なパラメータを渡すことでファイルの盗み見をおこなうこと。
OS Command Injection 不正入力により任意のOSコマンドを実行させること。
Client Side Comment HTML内に記述されたコメントから重要な情報を取得すること。


SQL Injection

SQL Injectionについて具体例を用いて確認していきましょう。
以下の作業をおこなってください。

SQL Injection


Cross Site Scripting

Cross Site Scriptingについて具体例を用いて確認していきましょう。
以下の作業をおこなってください。

Cross Site Scripting


演習:セキュリティ問題の修正

SQL Injection, Cross Site Scriptingについて実際にコードを修正しましょう。

演習:セキュリティ問題の修正