Как преобразовать строку в безопасную строку SQL?

я генерирую некоторые инструкции SQL insert из кучи текстовых файлов.

эти текстовые файлы, как правило, входные данные пользователя. Я хотел бы санировать эти данные, чтобы он не нарушил инструкцию insert.

например, некоторые входные данные, люди использовали слово не делают. "'"В не приведет оператор sql думать, что строка закончилась и, следовательно, вызвать ошибку.

есть ли .Чистый способ я могу позвонить в вид преобразовать все эти символы в escape-коды или безопасные символы?

2 ответов


не дезинфицировать ваши строки. Вместо этого используйте параметризованные запросы, поскольку они обрабатывают всю дезинфекцию.

вы не указываете, какую базу данных вы используете, поэтому я предполагаю, что это MS SQL Server. Корпорация Microsoft статьи на официальном ASP.net сайт об этом. Также см. MSDN для свойство sqlcommand.Параметры и AddWithValue метод.


существует только один символ, который вам нужно избежать: ansi 0x27, он же одинарная цитата:

safeString = unsafeString.Replace("'","''");