我能做些什么来阻止用户运行控制台文件中的 js 函数吗?我getReward
这里有这个功能:
function getReward(){
$('.reward-button').remove();
$('#rewardBtn').remove();
document.getElementById("fightInfo").innerHTML =
'<strong>You</strong> won the fight.<br><strong>Reward:</strong><br>Gold: ' +gold+' <img src="/img/gold.png" style="margin-top: -1%"><br>EXP: '+exp+'<br>'
+
'<br>'
+
'<button style="font-size: 24px;" class="btn btn-danger" onclick="backToArena();">⚔️<br>Back To Arena</button>';
socket.emit('win-fight', {
gold: gold,
exp: exp,
username: userName,
enemyname: enemyName
});
}
function backToArena(){
window.location.href = "/arena";
}
问题是用户只需输入控制台getReward();
,他就会自动获得奖励,因为套接字工作并且它从客户端进入服务器端。有没有办法防止这种情况?
更新
document.getElementById("rewardBtn").innerHTML =
'<button style="background-color: blue; font-size: 24px;" class="btn btn-primary" id="reward-button">Get reward </button>';
然后我这样做:
document.querySelector('#reward-button').addEventListener('click', getReward);
但这不会运行 getReward 函数,不会发生任何错误。