Проверка ввода SQL-инъекций - PullRequest
0 голосов
/ 30 января 2019

У меня есть API, построенный на Ruby on Rails, и я НЕ использую строковую интерполяцию в таких методах ActiveRecord, как where, find_by, ...., и это мешает моему коду выполнять любые SQL-инъекции и обрабатывать SQL-инъекцииas String.

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

Я искал драгоценный камень, чтобы помочь с проверкой входных данных SQL-инъекции, но я не смог их найти.Я мог бы использовать REGEX для проверки строкового значения, ища любое ключевое слово select и from в строке, но это не совсем хороший подход, потому что если строковое значение (комментарий) содержит текст, такой как "We select this item from the collection A", этозначение может быть отклонено, если я использую REGEX для ключевых слов select и from.

Как лучше всего проверить входные данные SQL-инъекции?Спасибо!Если этот пост дублируется, пожалуйста, дайте мне ссылку на аналогичный пост, и я удалю этот пост.

1 Ответ

0 голосов
/ 31 января 2019

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

Как правило, строка может причинить вред, только если она содержит одинарную кавычку, поэтому это условие SQL должно бытьдостаточно хорошо:

'''' || string || '''' <> quote_literal(string)

Но любой способ проверить одинарные кавычки должен подойти.

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