コネクト株式会社 技術情報コンテンツ | ||
[[セキュリティ指針]] SQLインジェクション対策説明SQLインジェクションとは、データベースへの登録につながるフォーム入力値に、特殊記号の使用により意図しないSQLを埋め込まれることによって発生する問題を指す。 被害例例えば以下のような、SQLを実行するSQLがあったとする。 $id_no = $_POST['userid']; $sql = "select * from hoge where id=\"$id_no\";" excec($sql); ユーザからの、入力である$_POST['userid']数値だけが入っていると決め付け入力を確認していない場合に、たとえば$_POST['userid']が、"10";DELETE * FROM hoge;"などといった入力が行われると、データベースの種類によっては、hogeテーブルすべてのデータが消滅してしまう。 また、不正な入力により本来アクセス権のない情報へのアクセスを許容してしまう可能性がある。 対策以下の文字列をサニタイズする。 変換前 変換後 ------- -------- ' " ; 削除する -- " \ \\ % \% _ \_
コーディング手法
|