在我的大学JSP项目中,对于用户的注册,我正在使用类似CAPTCHA的认证,并且我有一些具有简单数学挑战的图像(例如,2 * 5 =?)。请注意,我没有使用像reCAPTCHA这样的任何第三方API来满足这样的要求,因为它需要我的项目才能访问我在项目演示期间无法访问的项目。
现在,当用户点击从注册表单提交时,我将在模态对话框中随机加载我的集合中的任何图像。那么,加载图像的首选方式是什么,以便用户无法看到图像的真实路径(例如<img src="/captcha-images/img2343.jpg"/>
),或者是否有任何其他首选(机器人安全)方式来执行此类用户验证而不使用图像或任何第三方图书馆。我知道在实际的webapps中,使用了这样的库,但我提到了不使用任何这样的库的原因。
答案 0 :(得分:2)
您通常会通过调用动态页面来获取图像。 img标记可以接受任何类型的URL,重要的是调用返回的标题。
因此,您可以使用
的网址<img src="/captcha-images/security.action"/>
仅作为一个例子。只要security.action返回浏览器中显示为图像的内容,它就会呈现为图像。
在security.action中,您将拥有基于当前会话生成正确图像的所有逻辑,并确保验证码验证具有正确的凭据。