たとえば、ユーザからの入力を取得してデータベースに保存するWebアプリケーションがあるとします。さらに、セキュリティ上の脆弱性がないと仮定しましょう。ユーザーの入力を正しくエスケープし、バインドパラメータを使用します。データベースから取得したデータのエスケープ/サニタイズ
データベースから取得する必要があるデータは、疑わしく扱われる可能性があります(つまり、潜在的に汚染された/悪意のある)か?
例(試してみることを恐れているため、結果が不明)。これはデータベースです:
create table mytable (id int primary key, name varchar(50));
create table othertable (name varchar(50), xyz int,
... `name` is an fk ...);
insert into mytable (id, name) values(1, '"abc"; drop table mytable;');
insert into othertable (name, xyz) values('"abc"; drop table mytable;', 45475);
は、それから私は、(例えば、多分PHPから)この擬似コードを実行します。
# run query 'select * from mytable where id = 1';
# put the `name` in $name
# run query 'select * from othertable where name = $name'
# $name is not escaped, no other precautions taken