Может ли федеративный вход в систему (например, OpenID) представлять риск внедрения SQL? - PullRequest
1 голос
/ 07 сентября 2011

Можно ли считать, что все поставщики удостоверений безопасно обрабатывают информацию о пользователях, или же можно создать учетную запись или поставщика удостоверений для доставки злонамеренных имен пользователей, электронных писем, списков контактов и т. Д.?

Ответы [ 4 ]

3 голосов
/ 07 сентября 2011

Надежность существующих поставщиков не имеет значения . Злоумышленник может написать своего поставщика удостоверений и использовать его, чтобы отправить вам все, что он захочет. Вы практически никогда не должны доверять сторонним данным.

2 голосов
/ 07 сентября 2011

Даже если они не допускают такие символы, даже если спецификация запрещает такие символы, вы не должны на это полагаться.

Убедитесь, что при получении данных они соответствуют вашим ожиданиям.Кроме того, будьте осторожны и всегда используйте подготовленные операторы / параметризованные запросы без необходимости экранирования аргументов или, если это невозможно, экранирования аргументов запроса.Делайте это по привычке, и у вас не будет неприятных сюрпризов.

2 голосов
/ 07 сентября 2011

Никогда не думайте, что кто-то другой собирается очистить данные для вас. Сделайте это самостоятельно или (лучше) подключитесь к базе данных таким образом, чтобы предотвратить внедрение SQL путем правильного кодирования параметров.

1 голос
/ 07 сентября 2011

У нас есть несколько человек, которые имеют апострофы в своем адресе электронной почты, это не является недействительным ... проблема не в апострофе, а в том, что кодеры не используют параметризованные запросы и / или хранимые процедуры.Действительно, никто не должен использовать встроенный SQL и объединять строки в эти дни, что предотвратит почти все атаки SQL-инъекций

Если вам нужно использовать динамический SQL, например, в SQL Server, тогда используйте sp_executeSQL с параметрами, а неEXEC ....

...