在rails迁移中执行sql会打开sql注入攻击吗?

时间:2018-03-14 21:31:47

标签: ruby-on-rails ruby-on-rails-4 activerecord migration sql-injection

所以我刚刚阅读了多个使用SQL传递动态数据的来源,将数据库打开到SQL注入攻击:

我有一个rails迁移,它将数据插入到连接表中:

class MovePlayerToJoinTable < ActiveRecord::Migration
  def change
    games = Game.all
    games.each do |g|
      g.players.each do |p|
        execute "insert into games_players (player_id, game_id) values (#{p}, #{g.id})"
      end
    end
  end
end

我不确定上面是如何打开我的SQL注入攻击,因为它是一次性任务,我会在此之后通过强参数传递值,因为它们必须通过我的控制器。我在这里找不到什么东西?

1 个答案:

答案 0 :(得分:2)

您的示例不太可能存在SQL注入的风险。无论如何,在Rails中清理原始sql fragements是一种很好的做法:http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html

示例:

new Draggable().makeDraggable(nodeYouWantToDrag, 1, 1);