UI交互中何时需要机器人程序保护
When is a bot protection necessary in UI interactions?
这个问题很宽泛,但我会用我的用例缩小范围。
我的站点中不使用表单,只使用对php服务的ajax调用。基本上,我使用风格化的跨度和相关的"点击"事件,这会导致ajax请求将所有内容发布到服务器。
- 没有CCD_ 1元素
- 没有
<input type="submit">
元素 - 如果javascript被禁用,那么。。。什么都不起作用(这不是一件好事)
但我仍然想确保没有智能的$ss机器人会用我的"表单"生成垃圾。
所以我的问题是:在这种情况下,我需要captcha或类似的机器人保护吗?
根据给出的答案,以下是我选择实现的解决方案:
html:
<form id="honeypotform" action="http://whatever.com">
<input type="text" id="formbody">
<input type="submit" id="submitbtn" value="Submit">
</form>
css:
#honeypotform { display: none; }
真正的提交链接:
<span onclick="do();">Submit</span>
链接动作:
function do() {
if (formbody.value != "") return true;
/* ... */
}
几天后,我会跟进这篇帖子,对我的结果进行反馈。
Bot到底做了什么:它们实际上检测表单中的所有输入元素,并运行一个脚本,用一些有效的文本填充输入,从而用虚假的垃圾条目填充数据库。
如何解决这个问题:它非常简单,每个表单验证都必须遵循这个模式。您可以始终在表单中放置一个隐藏的输入字段,并为其指定一个空值。
在服务器端验证时,只需确保此条目为空即可。如果是EMPTY,则继续执行插入查询,否则将其视为BOT攻击填充垃圾条目。
有趣的阅读:当机器人攻击!
在不使用提交按钮的情况下,将您的输入包含在表单标记中并不是一个坏主意。(我推荐这个)
以防万一,如果您考虑禁用javascript,您的ajax将无法工作。
对于偏执的开发人员来说,将服务器端验证作为PLAN B总是一个好主意。优质工作
举个例子:你所给予的仍然是脆弱的。
<form>
<input type="text" id="name">
<input type="text" id="contact_no">
<input type="text" id="password">
<input type="hidden" id="email">//just seduce the BOT(considering that the bot reads the id or any other attribute to fill up values.Make sure on the server side $("#email").val is always zero..be it on client or server)
<input type="text" id="original_mle">//store this in db after server side validation
</form>
@安德烈亚斯·比约恩:是的。。那是个漏洞。。如果有一个专门为我的表单设计的机器人提供恶意数据条目,我担心我会失败。CAPTCHA似乎是这种情况下的唯一解决方案。
相关文章:
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 如何保护节点webkit应用程序上的字体
- 通过网站禁用屏幕保护程序/睡眠模式
- JS应用程序中基于DOM的XSS保护
- 正确传输和保护用户'web应用程序的密码
- 谷歌如何保护其java脚本不被机器人执行
- 电子邮件保护程序:这个代码今天还安全吗
- 如何在Ionic/Codova应用程序中保护我的Google Maps Javascript V3 API密钥
- Nodejitsu:有没有一种方法可以对应用程序进行密码保护
- UI交互中何时需要机器人程序保护
- 如何在javascript中创建受密码保护的应用程序
- 使用Firefox / OS X检测锁定屏幕或正在运行的屏幕保护程序
- Chrome 扩展程序和保管箱投放保护程序错误
- 在文件保护程序.js中保存文件后关闭窗口
- 谷歌机器人是否执行并遵循绑定到点击处理程序的 AJAX 请求
- 文件保护程序.js 和 Blob.js - 更改目录
- 保护科尔多瓦安卓应用程序的内容
- 如何使用Javascript保护机器人/爬虫的表单
- Javascript机器人程序问题
- 每次加载页面时都运行Js脚本机器人程序