カテゴリ: 今月のヒヤリ
世の中にはたくさんのwebアプリケーションが存在しています。
例えばアマゾンだったり楽天などのECサイトもwebアプリケーションでできています。
みなさん webアプリケーションのセキュリティ対策ってなにしてんの?って思ったりしませんか
なんで対策が必要なの?って思う人もいますよね
簡単に説明します。
対策をしていないとwebアプリケーションを作った側が意図していない動作をしてしまい、
重要な情報を盗まれてしまったり、違う人になりすまされてしまったりすることで個人情報の漏洩につながり
信用問題になりますよね?
なので対策が必要とされています。
どういった対策が必要なんだろ~?
代表的な攻撃手法
・SQLインジェクション
Webアプリケーションのリクエストパラメーターに、不正なSQLを入力することで
想定外のSQL結果を返却させ個人情報などを不正に取得する攻撃手法です。
対策
よく使われているのがプレースホルダによる対策
PreparedStatement() 、バインド変数の併用です。
※Java+ORACLEでの対策です。
軽く例をかいてみます
//DBコネクション情報の取得
String connection = propertyManager.getProperty(“db.connection”);
//SQL分作成
String sql = “select * from user_master where user_name = ?”
//プリペアステートメント変換
PreparedStatement p = connection.PreparedStatement(sql);
//バインド変数に代入
p.setString(1,”テストユーザ”);
//SQL実行
ResultSet rs = p.executeQuery();
こんな感じでかいてあげることでSQLインジェクション対策ができます。
ですが上記だけを信じるのではなく入力チェックなど確実に実装することが
とても大事かなとも思います。
みなさんも実装などするときに気を付けてみるといかもしれませんよ!!
※PreparedStatementについて
https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html
※他の不正アクセス攻撃手法一覧
気になる人は調べてみましょう
・ブルートフォースアタック
・クロスサイトスクリプティング
・ルートキット攻撃
・バッファオーバーフロー(BOF)攻撃
・セッションハイジャック
・OSインジェクション