如何防止用户模拟servlet请求

Twocold 发布于 2016/02/03 18:32
阅读 605
收藏 0

JSP+servlet构建的网站,有一个小游戏得分的那种,最后根据用户得分排名送礼品。

问题就是,用户可以抓取到这个得分的这个请求进行模拟,分数就是可以随便写了,怎么防止用户模拟servlet请求?


加载中
1
zabcd117
zabcd117

理论上说,完全屏蔽模拟提交是没有什么手段的。但是可以增加一些功能来加强模拟提交的难度。

1、验证码

2、用户登录

3、useragent和referrer

4、频率判断

还有就是你说的这个分数,是客户端计算完提交么?

RegnoiX
RegnoiX
回复 @Twocold : 客户端计算的还不是想提交多少提交多少...
Twocold
Twocold
是客户端计算完提交给服务端。 用户登录后玩游戏,在游戏过过程中每得几分提交一次。
0
不日小鸡
拔掉服务器网线它就提交不了
Twocold
Twocold
别闹,正经点
0
阳光满地
阳光满地
验证cookie,并用https。
0
kongjun
kongjun
检查http消息头的referer是否来自你程序设定的action。这个是没有办法模拟的,也是最简单的方法
调皮的XD
调皮的XD
referer很好模拟的,居然说不能模拟,哈哈
AAABBBQA
AAABBBQA
很好!!
0
公孙二狗
公孙二狗

使用 Token 验证提交,每次提交都是不同的 Token 这样模拟就搞不出来了(和防止表单重复提交是一个原理)

0
大洋的顶端
大洋的顶端
这样的post提交程序我写了上百个 想禁止模拟提交那是痴人说梦
0
maradona
maradona

任何防范只能增加技术上破解的门槛罢了,客户端计算估计是最低的技术门槛了,在这上面做文章最多只是增加懂得如何破解你的防范措施的人的破解成本罢了,而并不能完全阻止别人作弊

服务端计算的话,门槛就更高了,当然遇到高人直接入侵你数据库,你也没辙

Twocold
Twocold
只能提高模拟的成本了
0
胡萝卜炒肉
胡萝卜炒肉
要想屏蔽模拟提交不太可能啊。能不能只提交用户的操作,比如左移,右移,射击,提交一个操作数组。服务器进行模拟游戏,获得分数。
0
开源艺龙
开源艺龙
可以获取请求的IP,每个IP赋予一个cookie标识,提交一次改一次标识,或者每个IP只能提交一次
Twocold
Twocold
游戏是可以多次玩的,并且在一次游戏中是多次提交数据的。
返回顶部
顶部