Я запустил инструмент анализа статического кода (brakeman) в приложении rails и сообщил о некоторых уязвимостях SQL Injection, которые, как я подозреваю, могут быть ложными срабатываниями. Линии обижая выглядеть следующим образом:Возможно ли внедрение SQL?
#things_controller.rb
def index
Thing.select(params[:columns]).where(params[:conditions])
end
Я не могу понять способ использовать это, но это, кажется, довольно открытым, это достаточно безопасно (этот контроллер требует доступа администратора в любом случае), или это может быть злоумышленники?
Рубин 2.0.0-P247, Rails является 4.0.0
Вы передаете необработанный пользовательский ввод в предложение 'where'. Это классический пример SQL-инъекции :) –
Выбор на основе любого из столбцов не является проблемой (администратор может что-либо сделать), возможно ли подорвать логику для выполнения других операций SQL (UPDATE, DELETE и т. Д.) – Slicedpan
Postgres водитель блуждает при моих попытках, но это вонючий код, по крайней мере. –