所以我刚刚阅读了多个使用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注入攻击,因为它是一次性任务,我会在此之后通过强参数传递值,因为它们必须通过我的控制器。我在这里找不到什么东西?
答案 0 :(得分:2)
您的示例不太可能存在SQL注入的风险。无论如何,在Rails中清理原始sql fragements是一种很好的做法:http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html
示例:
new Draggable().makeDraggable(nodeYouWantToDrag, 1, 1);