Да, я думаю, ты абсолютно прав.Я думаю, что ваше руководство по сертификации неверно.Хотя в любом случае это кажется странным вопросом.
И в XSS, и в SQL-инъекции ключом здесь является то, что произвольные данные используются в контексте без их перевода в этот контекст.В некотором смысле, все дело в устранении неоднозначности «данных» из «команды».
Для HTML «данные» - это произвольные данные, которые предположительно являются текстовыми.Если вы хотите использовать текст в HTML, вам нужно экранировать зарезервированные символы, чтобы текст не интерпретировался как HTML.
Аналогично в SQL, если вы собираетесь объединить произвольные значения в запросе, вынужно убедиться, что они не интерпретируются как часть самого запроса (например, кавычки или что-то в этом роде), иначе у вас будет плохой день.(А еще лучше, в корне отделить данные от самого запроса с помощью подготовленных / параметризованных запросов, и это становится не проблема.)
Нет смысла, что экранирование вывода имеет какое-либо отношение к внедрению SQL ...если этот «выход» не является запросом, выводимым на сервер базы данных.
(Связанный: https://stackoverflow.com/a/7810880/362536)