0

我们正在探索如何通过仅允许关键函数在我们的 Rails 应用程序中执行任务来限制 SQL 注入风险。我是保安人员,不是全职铁路人员。

在我看来,只有在创建帐户(注册)或修改帐户(用户配置文件更新)时才会写入数据库。为简化起见,我们假设用户在应用程序中没有发生其他更新。

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

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

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

如果是这样,在数据库文件和代码请求中会如何?

4

1 回答 1

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

数据库.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 应用程序而不是数据库中,我知道这不是你正在寻找的东西,但可以提供更多帮助。

有没有一种简单的方法可以使 Rails ActiveRecord 模型只读?

于 2013-04-09T01:16:38.857 回答