【发布时间】:2017-02-23 17:54:25
【问题描述】:
我有以下按钮:
<input type="button" disabled onClick=document.location.href="?hash=blabla" tabindex="-1" class="btn btn-transparent btn-xs cbut0" />
现在该按钮被禁用并使用另一个脚本在鼠标悬停事件时重新启用它,但似乎用户仍然可以通过加载简单的外部 javascript 以编程方式单击该按钮,例如:
window.onload = setTimeout(function(){
$('input.btn.btn-transparent').click();
}, 10000);
有什么方法可以防止这种行为,以某种方式确保按钮是由鼠标而不是某些脚本单击的?
我在 Disabled button still fires using ".click()" 找到了一些线索,但在我的案例中未能实施。
【问题讨论】:
-
为什么?如果他们打算以编程方式单击它,那么没有什么能阻止他们自己运行
document.location.href="?hash=blablah"。 -
对于上下文 - 动机是什么?您为什么担心单击按钮的任意脚本?这是某种安全问题,还是可用性问题?还是只是好奇/学习?
-
哈希值在每次加载时都是随机的,因此它们无法自动触发。这里的动机是防止点击按钮时自动执行脚本。
-
真的不可能。他们可以阅读链接。
-
请不要阻止自动脚本点击按钮 :( 这样做的网站很痛苦。更好的选择:限制请求以防止滥用机器人攻击
标签: javascript button