我正在设计一个网站,如果允许宏自由运行,那将会有问题。
我想到了一种通过模拟按钮点击的HTTP请求来停止宏的方法,但如果他们可以插入只是“点击”按钮并按照普通用户的方式继续操作的javascript脚本,那将是徒劳的。
通过模拟按钮单击,我的意思是,按下按钮并运行按钮形式,并使用与之关联的php代码。
逻辑告诉我javascript可以做到这一点,但我想知道,谢谢你的任何输入!
〜安德鲁
答案 0 :(得分:47)
可以通过编程方式单击按钮。例如,您可能有一些页面如下:
<form>
<input type="text" />
<button>Do something</button>
<input type="submit">
</form>
可以打开调试cosole并输入
document.getElementsByTagName('button')[0].click();
将点击按钮,或
document.getElementsByTagName('input')[1].click();
将点击表单的提交按钮,或者只是
document.forms[0].submit();
在不点击按钮的情况下提交表单。
无法阻止用户在客户端上掌握JavaScript代码。您必须在服务器端添加一些验证,以防止不必要的用户操作。
答案 1 :(得分:2)
您唯一能做的就是验证服务器上的请求。
将页面交给客户后,您无法对如何使用该页面进行技术控制。
您可以做些什么,例如from:
说你正在制作javascript游戏。您使用AJAX将玩家的分数发送给 用于记录的服务器。查看脚本后,恶意用户可以运行您的AJAX代码 即使他们只赚了5,000,也能获得1,000,000分。
你不能阻止这种情况发生在javascript端。但是,应该有一些方法来验证服务器端的AJAX请求,您可能能够将安全“令牌”传递给黑客无法获得的javascript。