Ruby on Rails私有链接共享:Google Docs Style

Jac*_*kCA 6 ruby security privacy ruby-on-rails

什么是让用户能够共享私人链接的最佳方式,该链接使点击它的任何人都可以查看具有隐私限制的特定页面/文档/项目?

就我而言:

用户创建的事件仅限于数据库中的某些关系组(即:朋友,朋友的朋友等).我在事件控制器中有一个:before_filter,用于检查当前登录用户的资格,以确保该用户有权查看该事件.如果他们不这样做,他们会被引导到根页面并显示错误消息.

但是,我想要一个特殊的场景,用户可以创建具有相同隐私设置的事件,并且可以通过电子邮件,脸书等方式与他或她的朋友分享特殊链接.这些用户不会需要一个帐户(但需要制作一个帐户才能注册该活动).这很重要,因为application_controller中还有一个:before_filter,用于确保用户已登录.

我在想这里有一些我可以做的路由...现在我只需要简单的/ events/72设置.每个事件应该有两个不同的链接:一个正常的链接和一个"特殊代码"版本,它们可以绕过这两个:before_filter?

人们的想法是什么?

Ove*_*ryd 6

我同意David Lyod的回答(在不同的控制器中分离这个问题).

但是为了创建哈希,我强烈建议你用一些秘密短语来腌制哈希.

require "digest"
Digest::SHA512.hexdigest("#{created_at}#{user_id}.mysupersonicsecretSALT")
Run Code Online (Sandbox Code Playgroud)

如果没有秘密短语的知识,就不可能计算哈希值并对其系统进行测试,直到它碰到现有的哈希值为止.如果您正在处理敏感数据,那么您不应该懒惰.

干杯,

卢卡斯


Dav*_*yod 4

我将有一个单独的控制器,它使用哈希值来引用事件。

一些简单的东西,比如对created_at + user_id进行哈希处理以创建唯一的引用。

您也可以简单地跳过对某个操作的检查,但我更喜欢第一个解决方案。