【发布时间】:2019-06-20 03:07:47
【问题描述】:
所以我想开发一个小型点击游戏来弄湿我的脚,它还可以回答我关于作弊的问题。
这就是概念,有一个空白页,上面有 Button 和 <h1/>
将会有一个注册过程,用户将被放入一个带有Score 列以及用户名和密码等的数据库中。
当用户单击Button 时,我想向该用户添加一个点,然后将其放入数据库的Score 列中,以便保存分数并显示在@987654326 的页面上@标签
现在,如果我通过 JavaScript 执行此操作,通过客户端访问数据库并从客户端添加积分,那感觉就像我只会邀请作弊者和许多安全问题。
所以我的问题是。
我如何通过创建一个按钮然后将其与我的 Controller 中的函数挂钩来防止作弊者,这样我就可以在服务器端处理它。
<body>
<h1>Playground</h1>
<h1>Points @Model.Coins</h1>
<h1 id="Points">0</h1>
<button id="PointsButton">Points!</button>
<script src="~/js/PointSystem.js"></script>
</body>
JS
let i = 1;
let button = document.getElementById("PointsButton");
let DisplayPoints = document.getElementById("Points").innerHTML;
DisplayPoints = i;
button.onclick = AddPoints;
function AddPoints() {
}
【问题讨论】:
-
听起来您正在寻找的技术是“AJAX”。查找在 ASP.NET 中使用 AJAX 的示例和教程(MVC、Core、服务器端技术的任何其他细节)。
-
您作为客户端代码公开的任何内容都容易受到黑客攻击(HTML、CSS、JavaScript)。为了保护您的数据库,您需要服务器端检查(.php、.aspx、.jsp)。
-
我会研究 AJAX。
-
window.setInterval(()=>button.click(),1000)要停止编写脚本?? -
@MarkDenom:他的观点是,用户可以设置该间隔并自动以他们想要的速度快速点击按钮。没有什么可以阻止他们。关键是在这里对“作弊”保持现实。如果您可以定义验证逻辑,服务器端验证肯定会有所帮助。但是如果游戏变得流行并且人们要作弊,希望服务器已经准备好处理很多的请求。
标签: javascript html asp.net model-view-controller asp.net-core