0

在我的大学 JSP 项目中,对于用户注册,我使用类似 CAPTCHA 的身份验证,并且我有一些具有简单数学挑战的图像(例如 2 * 5 = ?)。请注意,我没有使用任何第三方 API(如 reCAPTCHA)来满足此类要求,因为它需要我的项目能够访问 Internet,而我在项目演示期间无法访问。

现在,当用户单击注册表单中的提交时,我将在模态对话框中随机加载我收藏的任何图像。那么,加载图像的首选方式是什么,以使用户无法看到图像的真实路径(例如<img src="/captcha-images/img2343.jpg"/>),或者是否有任何其他首选(机器人安全)方式来执行此类用户验证而不使用图像或任何第三方图书馆。我知道在真正的 webapps 中使用了这样的库,但我提到了不使用任何此类的原因。

4

1 回答 1

2

您通常会做的是通过调用动态页面来获取图像。img 标签可以接受任何类型的 URL,重要的是调用返回的标头。

因此,您可以使用以下网址

<img src="/captcha-images/security.action"/>

只是作为一个例子。只要 security.action 返回的东西在浏览器看来是图像,它就会被渲染为图像。

在 security.action 中,您将拥有根据当前会话生成正确图像的所有逻辑,并确保验证码验证具有正确的凭据。

于 2012-04-08T14:26:46.767 回答