研修(Webセキュリティ)
Webセキュリティについて
こういうことが起きるというのと対策方法をまとめた。
■SQLインジェクション攻撃
ショッピングサイトなどの入力フォームでSQLインジェクション攻撃を受け、
個人情報、クレジットカード情報が盗まれて不正に扱われるケース。
・原因
サイトのSQLインジェクション対策がなされていなかった。
・対策
SQLインジェクション対策をする。
→・htmlspecialchars(htmlタグを無効化する)
・mysql_escape_string
mysql_real_escape_string(SQL文の特殊文字をエスケープ)
・プレースホルダー(PEAR_DBでのクエリ内の変数を別に記載)
自分もソース書いててよく忘れるので気をつける。
■個人情報の扱い
・サイト上に個人情報ファイルを誤って保存
・メールで個人情報ファイルをやり取り
これらによって、サイトで個人情報が公開されてしまったり、
メールの送り主に個人情報を知られてしまったなどのケースがある。
・原因
・サーバー上へ不必要なファイルを保存
・メールで個人情報ファイルをやり取り
・ファイルの中身を確認していなかった
・対策
・サーバー上に保存するファイルを確認
・メールで個人情報ファイルをやり取りしない
→どうしてもという場合は、ファイルにパスワードをかける
■セッションやGETでのid管理
セッションやGETで
・個人情報を持たせている
・URLに特定のユーザーのidが含まれている
ことで他のユーザーに個人情報が漏れたケースがある。
モバイルサイトなどではセッションやGETで情報を持たせるのはよく使う。
・原因
セッション、GETに特定のユーザーの個人情報、idが含まれたまま
・対策
構文チェック、セッションなどの初期化を行う