【发布时间】:2014-10-15 02:57:52
【问题描述】:
问题。保护移动网站免受垃圾邮件/机器人的侵害,并且无需实施不友好的用户体验验证码。假设我们要禁用(从服务器端)onClick 事件但允许 onTouch 事件。机器人能否复制 onTouch 功能?确保只有人的手才能使用该网站?
【问题讨论】:
标签: javascript mobile server-side spam-prevention
问题。保护移动网站免受垃圾邮件/机器人的侵害,并且无需实施不友好的用户体验验证码。假设我们要禁用(从服务器端)onClick 事件但允许 onTouch 事件。机器人能否复制 onTouch 功能?确保只有人的手才能使用该网站?
【问题讨论】:
标签: javascript mobile server-side spam-prevention
考虑到浏览器向开发人员(即黑客/垃圾邮件发送者)公开的 UI 编程模型/API,在您的 Web 应用程序上模拟点击/触摸事件并不难。要记住的一点是,像 onClick 事件处理程序、onTouchStart、end、drag 都可以使用 JavaScript 回调进行复制。
换句话说,从语言的角度来看,触摸/点击 API 彼此相似。只是浏览器实现使它们与众不同。
【讨论】:
是的,他们可以。一种方法是使用 Selenium 驱动 Android 手机/平板电脑。我自己从来没有做过,但这个答案说明了它是如何做到的:WEbdriver with Touch events
基本上,Selenium Android 驱动程序公开了可用于触发触摸事件的 TouchAction:
new TouchActions(driver).down(x, y).move(150, 0).perform();
您需要一台 Android 设备才能执行此操作。虽然您也可以使用 Android SDK 附带的 Android 模拟器来完成。
【讨论】: