Глобальная проверка всех входных данных - плохая практика. Как и большинство приложений, DotNetNuke работает для каждой функции для проверки правильности ввода.
Создание уязвимого кода в значительной степени зависит от того, как используется пользовательский ввод. Например, SQL Injection и XSS полагаются на очень разные управляющие символы. Внедрение SQL может быть вызвано отсутствием фильтрации одного из трех символов '"\
, тогда как большинство XSS вызвано отсутствием фильтрации <>
. SQL-инъекция также может быть вызвана , а не использованием управляющих символов, например, этот код уязвим для SQL-инъекции, потому что не имеет кавычек вокруг id:
SqlCommand("SELECT username FROM users where id="+id)
Глобальная проверка ввода, такая как magic_quotes_gpc в PHP, также не удастся предотвратить этот тип атаки, и это одна из причин, почему он был удален в PHP6.