加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – w / o数据库的注册或邀请电子邮件验证

发布时间:2020-12-16 20:40:40 所属栏目:百科 来源:网络整理
导读:我想保持我的数据库清理几乎帐户,我正在考虑将新的注册和邀请作为加密或散列的URL将他们的数据放入欢迎电子邮件.一旦URL中的链接被访问,那么该信息随后作为一个帐户被添加到数据库中. 有没有什么,目前这样做?有关以这种方式进行用户注册的任何引用,想法或警
我想保持我的数据库清理几乎帐户,我正在考虑将新的注册和邀请作为加密或散列的URL将他们的数据放入欢迎电子邮件.一旦URL中的链接被访问,那么该信息随后作为一个帐户被添加到数据库中.
有没有什么,目前这样做?有关以这种方式进行用户注册的任何引用,想法或警告?
谢谢!

编辑:
我做了一个工作示例,该URL为127个字符.

http://localhost/confirm?_=hBRCGVqie5PetQhjiagq9F6kmi7luVxpcpEYMWaxrtSHIPA3rF0Hufy6EgiH%0A%2BL3t9dcgV9es9Zywkl4F1lcMyA%3D%3D%0A

显然,更多的数据=较大的网址

def create
# Write k keys in params[:user] as v keys in to_encrypt,doing this saves LOTS of unnecessary chars
  @to_encrypt = Hash.new
  {:firstname => :fn,:lastname => :ln,:email => :el,:username => :un,:password => :pd}.each do |k,v|
    @to_encrypt[v] = params[:user][k]
  end

  encrypted_params = CGI::escape(Base64.encode64(encrypt(compress(Marshal.dump(@to_encrypt)),"secret")))
end

private

def aes(m,t,k)
  (aes = OpenSSL::Cipher::Cipher.new('aes-256-cbc').send(m)).key = Digest::SHA256.digest(k)
  aes.update(t) << aes.final
end

def encrypt(text,key)
  aes(:encrypt,text,key)
end

def decrypt(text,key)
  aes(:decrypt,key)
end

# All attempts to compress returned a longer url (Bypassed by return)

def compress(string)
  return string
  z = Zlib::Deflate.new(Zlib::BEST_COMPRESSION)
  o = z.deflate(string,Zlib::FINISH)
  z.close
  o
end

def decompress(string)
  return string
  z = Zlib::Inflate.new
  o = z.inflate(string)
  z.finish
  z.close
  o
end

解决方法

思考:

>为“cookie”使用非对称密码,以防止机器人创建帐户.使用公钥加密“cookie”,通过私钥解码来验证.理由:如果只使用base64或其他算法对cookie进行编码,则可以轻松地对该方案进行逆向工程并自动创建帐户.这是不受欢迎的,因为垃圾邮件.此外,如果帐户受密码保护,密码必须显示在cookie中.访问注册链接的任何人都不仅可以激活帐户,还可以找出密码.>需要通过链接激活后重新输入密码.理由:根据网站的目的,您可能希望改善对信息欺骗的保护.激活后重新输入密码,防止被盗/欺骗的激活链接.>验证激活链接时,请确保已创建由其创建的帐户.>如何保护两名用户同时创建同名的帐号?可能的答案:使用电子邮件作为登录标识符,不需要唯一的帐户名称.>首先验证电子邮件,而不是继续创建帐户.理由:这将最小化您需要在cookie中发送的信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读