繁体   English   中英

每个功能有多个数据库用户

[英]Multiple Database Users per function

我们正在探索如何通过仅允许关键功能在我们的Rails应用程序中执行职责来限制SQ​​L注入风险。 我是安全主管,不是全职的人。

我的看法是,仅在创建帐户(注册)或修改帐户(用户配置文件更新)时才应写入数据库。 为简化起见,让我们假设用户没有在应用程序中进行其他任何更新。

如果某人不阻止对只读请求的SQL注入攻击,则通过两个单独的调用可以更好地保护我们。

导轨可以支持以下配置吗? --

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

如果是这样,它将在数据库文件和代码请求中看起来如何?

我想我最好把它发布出去。

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

数据库

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模型设置为只读?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM