【发布时间】:2018-02-11 11:00:09
【问题描述】:
我正在制作一个测验应用程序,其中 4 个用户加入一个大厅(完成),然后领导开始测验。
测验开始时,会随机选择问题。用户可以回答他们,然后单击提交。每个问题都是定时的,这意味着用户只有 10 秒的时间来回答问题。
这都是通过 AJAX 完成的,因为我希望网站是实时的。我将如何防止作弊?用户可以手动编辑JS文件等。
我正在考虑获取加载问题的确切时间 + 回答时间。如果不是在 10 秒内,他就是在作弊。这会起作用吗,还是有更好更简单的方法来做到这一点?
谢谢。
【问题讨论】:
-
使用防伪令牌来防止脚本编写。如果 ASP.Net MVC 框架中的内置模块不能满足您的需求,那么您必须创建自己的。
-
@Ashley,我的理解是 Anti Forgery 令牌可以防止跨站点脚本,但我不清楚如何防止黑客使用检查工具篡改 DOM,例如替换事件处理程序并解除绑定旧的。你提到的似乎有道理。将敏感逻辑移至服务器端,在那里选择下一个问题并跟踪防止作弊的时间。
-
@derloopkat 是的,我也有同样的问题。由于两个答案都使用 Anti Forgery 令牌提供了结果,它们是否可以防止使用检查工具等篡改代码?
标签: javascript c# jquery ajax asp.net-mvc