основы параметризованного запроса - PullRequest
2 голосов
/ 15 декабря 2010
  1. Я использовал параметризованный запрос, сколько раз я знаю, что он помогает предотвратить внедрение SQL. Но мне было интересно, могу ли я знать, что такое базовая логика, работающая внутри параметризованного запроса предотвратить внедрение SQL может быть очень просто, но я не знаю об этом. Я пытался найти в Google, что является его основным, но каждый раз находил пример того, как использовать параметризованный запрос в Asp.net.
  2. Я знаю о создании специального класса, который останавливает те специальные символы, как (', - и т. Д.), Которые используются при внедрении SQL, но останавливает ли только специальные символы полностью предотвращение внедрения SQL?
  3. И последнее, что параметризованный запрос .net может полностью остановить внедрение SQL?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

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

Руководство PostgreSQL объясняет основы параметризованных запросов на уровне базы данных.

С другой стороны, параметризованные запросы упрощают передачу конфиденциальных данных. Например, пользователь вводит десятичное число 100,00, но ваш сервер ожидает значение 100,00.

0 голосов
/ 15 декабря 2010

В каждом ядре базы данных, который я знаю, использование «подготовленных» (иначе говоря, «параметризованных» или «статических») запросов предотвращает внедрение SQL. Вам не нужно фильтровать любые символы, если они передаются в параметры. Если вы когда-нибудь напишете SQL, который объединен в коде, а не подготовлен с параметрами, вы, вероятно, подвергаетесь риску внедрения SQL. Вам следует обратиться к руководству по безопасности для базы данных, которую вы используете, в ней, скорее всего, есть раздел, посвященный внедрению SQL, но просто прочитайте все. Могу поспорить, что это займет меньше часа и даст вам твердые инструкции и уверенность в том, что вы будете следовать лучшим практикам, применимым к вашей базе данных.

...