对于一个文章点赞,不登录的情况下怎么进行限制?
1.用户在公司,家,咖啡厅等场所使用同一设备(笔记本,手机或者平板电脑)进行操作,如果用ip会识别成多个人
2.特殊办公环境多人使用同一个外网ip
3.用cookie或者device_id
session 存在的问题是遇到网络上的点赞软件那么就没办法 @nxbtch ip 的话很容易出现我们用同一个公网 ip,那么你点赞了,我就不能点了! 看来还是觉得登录点赞靠谱
真实用户使用场景是,用户看完一篇文章觉得很好,点了个赞,然后就不会再看了,在同一个 500 人的公司下,有多少人会访问同一个网站并且看了一篇文章,同时觉得这篇文章写的很好必须给个赞呢?我想如果这个公司再大点,发生这种情况的概率也不高把,如果能到这个访问量,那么考虑使用更精确的方法。
如果用 cookie,我每次点赞把 cookie 删掉是不是可以再点了呢?如果碰上那种不走浏览器的,比如通过 api 访问,是不是还得自己实现一个类似 cookie 的东西呢?
device_id 没用过
换个思路 不登录情况下防刷,也就是通过类似于指纹识别的技术来识别并限制用户 虽然指纹识别都可以被用户伪造而绕过 但我想可以通过 ip 加上其他的特征来综合的判断,避免同 IP 用户的问题。 当某 IP 出现异常情况再特殊处理
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