защита от вредоносного внедрения SQL - PullRequest
3 голосов
/ 17 июня 2011

У меня есть куча CGI Perl, которые принимают параметры и используют их значения в различных запросах DBI mySql.

Есть ли какой-либо способ, которым злоумышленник может нанести вред (или украсть данные) из моей системы, если я не позволю использовать любые отправленные пользователем значения, содержащие слова «выбрать, вставить, удалить или обновить»в качестве параметров, и пока я заключаю все значения, предоставленные пользователем varchar, в одинарные кавычки?

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

Ответы [ 2 ]

12 голосов
/ 17 июня 2011

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

4 голосов
/ 17 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...