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