gpt4 book ai didi

javascript - 隐藏内容以防止在 JavaScript 制作的游戏中作弊

转载 作者:行者123 更新时间:2023-11-30 21:20:48 24 4
gpt4 key购买 nike

我知道完全防止用户作弊和/或破解 Web 应用程序是不可能的,但我发现的这个漏洞很容易找到,确实应该堵上。

https://mcthompsonatl.github.io/

我实际上并没有编写任何代码。我得到了一个非常基本的“找到所有 6 个对象”(在本例中为 key )猜谜游戏,该游戏是一位不是程序员的前雇员为我们的一位客户的晋升而编写的。逻辑是合理的,它需要一些格式化工作,但在开发者模式下测试时,我花了很短的时间发现只需检查每个 <div> 就可以轻松赢得游戏。的 card类(class)。因为这是用于促销竞赛,所以我一直在尝试找出一种方法来隐藏或更改破坏游戏的代码,以便在开发者模式下检查任何卡片都不会显示任何提示。

我能找到的一种解决方案是将卡片元素更改为多个 HTML5 Canvas 元素。这样做的两个问题是 1. 我使用 Canvas 的经验为零,以及 2. 即使我这样做了,这似乎也是一项极其漫长和痛苦的任务,而且我不确定是否会允许我有时间d 需要学习足够的知识来解决问题。这是可以用 PHP 隐藏的东西吗?我在这里找到一个明智的解决方案有点难过。感谢您的帮助。

最佳答案

评论太长了。

根据我从游戏中了解到的情况。你有 36 个盒子,你需要点击随机盒子。如果您点击正确方框的 X 号,您就赢了。

我能够通过检查 HTML 并搜索指示获胜 key 的图像来作弊。图片名称是 images/keytowin/frontImage.png

一个解决方案可能是不将指示“正确”选择的图像预先分配给 HTML div。相反,仅在单击图像后才分配图像。这将使它更难找到,因为 HTML 本身不会泄露它。

这里的想法y是Random。使用 Javascript,生成 3 个介于 1 和 36 之间的随机数。这三个随机数表示中奖框。如果用户点击了一个框,并且它有相同的编号(我注意到 div 的编号是 data-id="1" )然后使用 JS 添加图像动态的内部 div。

然而,这三个随机数将在游戏开始时确定。因此,模糊变量很重要。

我提供了一个示例代码来演示这个概念。

var luckyNumbers = getUniqueNumbers();
var winImg = "<img src='https://mcthompsonatl.github.io/images/keytowin/frontImage.png' alt='X LOGO'>";
var loseImg = "<img src='https://mcthompsonatl.github.io/images/keytowin/TryAgain.png' alt='X LOGO'>";

console.log(luckyNumbers);

$(".card").on("click", function() {

if (!$(this).hasClass("clicked")) {
$(this).addClass("clicked");

selected = Number($(this).attr("data-id"));
if (luckyNumbers.indexOf(selected) > -1) {
//code to put a key image
$(this).find(".back").append(winImg);
} else {
console.log("wrong: " + selected);
//code to put not-winning image
$(this).find(".back").append(loseImg);
}

}

});



function getUniqueNumbers() {
var arr = []
while (arr.length < 3) {
var someRand = Math.ceil(Math.random() * 36)
if (arr.indexOf(someRand) > -1) continue;
arr[arr.length] = someRand;
}
return arr;
}
img {
width: 50px;
}
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta content="width=device-width" name="viewport">
<title>JS Bin</title>
</head>

<body>
<div class="game">


<div class="card" data-id="5">
<div class="inside">
<div class="front">
<img src="image/someimage.jpg" alt="keytowin">
</div>
<div class="back">
</div>
</div>
</div>

<div class="card" data-id="6">
<div class="inside">
<div class="front">
<img src="image/someimage.jpg" alt="keytowin">
</div>
<div class="back">
</div>
</div>
</div>


<div class="card" data-id="7">
<div class="inside">
<div class="front">
<img src="image/someimage.jpg" alt="keytowin">
</div>
<div class="back">
</div>
</div>
</div>


</div>
<script src="https://code.jquery.com/jquery-2.2.4.js">
</script>
</body>

</html>

关于javascript - 隐藏内容以防止在 JavaScript 制作的游戏中作弊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45201578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com