保护自定义图像的图像文件名 - 单击CAPTCHA

时间:2012-04-02 13:42:40

标签: c# asp.net html visual-studio captcha

我正在通过书籍和自我指定的项目教自己.NET c#以获得乐趣。我认为从头开始尝试创建我自己的图像点击验证码控件可能是一种很好的体验。从一些选项中识别“正确的图像”并点击右边的(猫或某物)以表明自己是人类的那种。

当我试图想到脚本可以通过我创建的任何方式学习的所有方法时,我认为它可以简单地从试错中学习正确的答案并保存每个图像的文件名。最终它会了解哪些文件名是“正确的”

我想不出任何方法来实际隐藏浏览器或源代码中的图像文件名,但每次浏览都重命名它们也不实用。有没有什么方法可以用某种自定义MIME类型“渲染”图像(这是正确的问题?我很抱歉)每次请求它们而不是仅仅丢弃IMG SRC?

这可能是不可能的,但我想请问专家。谢谢你的时间!

4 个答案:

答案 0 :(得分:1)

您可以从加载的Image创建Bitmap类并保存图像,用于在某处生成位图以验证用户输入

答案 1 :(得分:1)

您所做的是为图像提供代理:

<img src="imageServer.aspx?id=12345" />

您在最后执行的操作是发送MIME标头,然后流出文件。这样,所提供的图像与特定文件名之间没有直接关系。

答案 2 :(得分:1)

在MSDN网站上有一个很好的动态图像创建示例

http://msdn.microsoft.com/en-us/library/system.web.httpresponse.outputstream.aspx

答案 3 :(得分:1)

我建议使用通用处理程序(* .ashx)。更少的开销和更简洁的方式来加载调用aspx页面的图像。

我已经无数次地使用通用处理程序用于图像目的。例如,您可以提供服务器端调整大小。另一个很酷的功能是访问会话值,例如“仅在用户登录时显示图像”

查看http://www.codeproject.com/Articles/34084/Generic-Image-Handler-Using-IHttpHandler可能是一个好的开始。