Допустим, у меня есть веб-приложение, которое получает данные от пользователя и сохраняет их в базе данных.Предположим далее, что уязвимостей в системе безопасности нет - он правильно экранирует пользовательский ввод, использует параметры привязки и т. Д.
Должны ли данные, извлеченные из базы данных, восприниматься с подозрением (то есть как потенциально испорченные / вредоносные)?
Пример (не уверен в результате, потому что боюсь его попробовать).Это база данных:
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