SQLインジェクション対策について
教育的な観点ではなく実務的な観点から、僕の考えをまとめてみる。UTF-8 を利用し、SET NAMES を利用していなくて mysql で、クライアントプリペアドステートメントなケースを想定している。
$foo=$_POST[‘id’];
query(“SELECT * FROM foo WHERE id=$foo”);
のように外部からの文字列をそのまま使用してクエリを組みたてたときに、意図せぬ SQL を発行されてしまう脆弱性のことである。
| #compdef plackup | |
| typeset -A opt_args | |
| local context state line | |
| local -a psgi_servers | |
| local psgi_server_dir | |
| psgi_server_dir=$(dirname $(perldoc -l Plack::Handler::Standalone)) | |
| psgi_servers=($(find $psgi_server_dir -maxdepth 1 | perl -nle 'm{([^/]+)\.pm$} and print $1')) |