Rails 不登录点赞如何进行限制

colorfulberry · 2015年07月10日 · 最后由 nxbtch 回复于 2015年07月10日 · 5458 次阅读

对于一个文章点赞,不登录的情况下怎么进行限制?

同求,我之前也在思考这个问题... 我想的是简单一点的话,存 session 里面?

在页面渲染的时候,如果没有登录,直接把点赞按钮链接到登陆页面,如果登录了则正常渲染

@nxbtch 就是要实现不登录能点赞,但要避免刷赞的情况? @cqcn1991 session 这个也在考虑,还有就是 ip+session 是不是有效果!目前可能需要这个功能,正在计划中!

ip 明显行不通 可以考虑用 cookie 来做

每次点赞向后台发送请求,后台根据 ip 地址来判断是否可以点赞

#5 楼 @nxbtch

1.用户在公司,家,咖啡厅等场所使用同一设备(笔记本,手机或者平板电脑)进行操作,如果用ip会识别成多个人
2.特殊办公环境多人使用同一个外网ip
3.用cookie或者device_id

session 存在的问题是遇到网络上的点赞软件那么就没办法 @nxbtch ip 的话很容易出现我们用同一个公网 ip,那么你点赞了,我就不能点了! 看来还是觉得登录点赞靠谱😄

#7 楼 @colorfulberry 因为我不打算做太严的限制…想先看看做的东西是不是有流量这样… 先尽可能的方便快捷

@bestjane

真实用户使用场景是,用户看完一篇文章觉得很好,点了个赞,然后就不会再看了,在同一个 500 人的公司下,有多少人会访问同一个网站并且看了一篇文章,同时觉得这篇文章写的很好必须给个赞呢?我想如果这个公司再大点,发生这种情况的概率也不高把,如果能到这个访问量,那么考虑使用更精确的方法。

如果用 cookie,我每次点赞把 cookie 删掉是不是可以再点了呢?如果碰上那种不走浏览器的,比如通过 api 访问,是不是还得自己实现一个类似 cookie 的东西呢?

device_id 没用过

device_id 靠谱

12 楼 已删除

#12 楼 @bestjane 你没看懂 10 楼的意思,反而发布挑衅言论,请不要发这种帖子。

  1. 基于 IP 的方案对普通用户影响很小,但是伪造成本高,避免恶意投票。
  2. 基于 cookie 或者 device_id,很容易被伪造,用于恶意投票。

@bestjane @nxbtch @rei 非常感谢你们的意见,

基于 IP 的方案对普通用户影响很小,但是伪造成本高,避免恶意投票 基于 cookie 或者 device_id,很容易被伪造,用于恶意投票。

ip 限制虽然有一定的影像但的确不大,特别是对小网站! 我想这是为什么大多数能点赞网站需要用户登录!

如果客户非的需要不登录点赞那我就用 IP 限制吧,目前来说网站访问量很小

换个思路 不登录情况下防刷,也就是通过类似于指纹识别的技术来识别并限制用户 虽然指纹识别都可以被用户伪造而绕过 但我想可以通过 ip 加上其他的特征来综合的判断,避免同 IP 用户的问题。 当某 IP 出现异常情况再特殊处理

@colorfulberry

def like
  item = PostLikeByIPModel.find_by(ip: request.remote_ip, post_id: post.id )
  if item.limted_count < SOMELIMTED
      head :bad_request
  else
      item.inc(:limted_count)
      head :ok        
  end
end
需要 登录 后方可回复, 如果你还没有账号请 注册新账号