每个功能多个数据库用户

时间:2013-04-08 21:53:32

标签: ruby-on-rails security database-connection sql-injection validation

我们正在探索如何通过仅允许关键功能在我们的rails应用程序中执行职责来限制SQ​​L注入风险。我是安全官员,而非全职铁路人员。

我看到它的方式,只有在创建帐户(注册)或修改帐户(用户配置文件更新)时才会写入数据库。出于简化目的,我们假设用户在应用程序中没有发生其他更新。

如果某人没有阻止对只读请求的SQL注入攻击,我们将通过两次单独的调用得到更好的保护。

rails可以支持以下配置吗? -

  • 所有“读取”请求的一个数据库连接
  • 所有“写入”请求的一个数据库连接(相同的数据库)

如果是这样,那将如何查看数据库文件和代码请求?

1 个答案:

答案 0 :(得分:0)

我想我不妨发布这个。

class User < ActiveRecord::Base
  self.abstract_class = true

  ...

end

CUR =创建更新阅读

R =只读

class UserCUR < User
   establish_connection "user_cur_database_#{Rails.env}"
end

class UserR < User
   establish_connection "user_r_database_#{Rails.env}"
end

的database.yml

user_cur_database_production:
  adapter: w.e.sql
  host: yourhost
  username: user_cur
  password: ********
  database: yourdb

user_r_database_production:
  adapter: w.e.sql
  host: yourhost
  username: user_r
  password: ********
  database: yourdb

用户具有不同的访问权限

你可以做同样的事情,但是在实际的rails应用程序而不是数据库中,我知道这不是你正在寻找的东西,但可以提供更多的帮助。

Is there an easy way to make a Rails ActiveRecord model read-only?