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