gpt4 book ai didi

mysql - rails : Garble data as it leaves the database

转载 作者:行者123 更新时间:2023-11-29 22:19:09 25 4
gpt4 key购买 nike

基本上,我正在寻找一种在对某些表执行查询之前注入(inject)代码的方法。例如,如果我查询用户表(忽略连接/或复杂语句的可能性),我想混淆输出,以便您仍然可以得到一些东西,但它不可读。

解决方案必须不会修改数据库中的实际数据。我基本上希望为客户提供一种查看布局等的方法,而无需向他们提供数据库中的实际数据。

第二个示例:我是用户 A。我转到一个页面,看到一个邮寄标签,标签上写着:

福·琼斯富街123号顺丰CA 93218

这是数据库中的实际信息。现在,用户 B 访问同一页面,但他们看到的不是上面的内容:

asdfasdf adsfasdfasdf富街123号顺丰CA 93218

在上面可以调用一些东西来转储名称但显示地址 block 。理论上,它会从 View / Controller 代码中抽象出来,也可能在模型上抽象出来。

帮忙?想法?这是白日梦吗?

最佳答案

我只是在 View 中执行此操作,而不是在 ActiveRecord 数据查询层中执行。

我的第一个想法是实现一个像 UserObfuscator 这样的 Obfuscator 类 - 它基本上是一个装饰器。

概念证明:

class UserObfuscator
def initialize(user)
@user = user
self
end

def id
@user.id
end

def first_name
SecureRandom.hex(6)
end

def last_name
SecureRandom.hex(6)
end

# .. implement as many of these methods as you need.

end

那么在你看来:

<%- obfuscator = UserObfuscator.new(@user) %>
Hello, <%= obfuscator.first_name %>

您可以稍微清理一下 View ,然后将此方法移动到助手或模型本身:

class User < ActiveRecord::Base
def obfuscator
@_obfuscator ||= UserObfuscator.new(self)
end
end

那么在你看来:

Hello, <%= @user.obfuscator.first_name %>

但差不多有六六个。

关于mysql - rails : Garble data as it leaves the database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30921093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com