Хотя конкретные данные, с которыми я сейчас работаю, не будут генерироваться пользователем и будут очищены в течение всего лишь одного дюйма их жизни во время моих обычных процедур проверки, я хотел бы узнать, как выполнить базовую операцию INSERT, SELECT и т. д. SQL-запросы, защищая себя от атак SQL-инъекций, просто для дальнейшего использования. Я бы лучше научился делать все правильно, с помощью параметризованных запросов.
Санитарная обработка всегда хороша, но я противопоставляю свой жалкий интеллект опытным хакерам. Выход вручную означает, что я, вероятно, пропускаю вещи, поскольку черные списки не так надежны, как белые списки. Для дополнительного пояснения я не имею в виду использование нотации (%s)
для передачи в качестве параметра для построения строки, возможно с именем sqlstatement
. Я думаю, что одно из волшебных слов, которое мне нужно знать, это «связывание».
Я также надеюсь избежать чего-либо за пределами стандартной библиотеки Python.
Для рассматриваемого приложения требуется Microsoft SQL 2005, если это актуально. Я использую ActiveState Python и модули dbi и odbc. Поскольку это база данных Someone Else, хранимые процедуры отсутствуют.