保护自定义图像的图像文件名-单击验证码
Posted
技术标签:
【中文标题】保护自定义图像的图像文件名-单击验证码【英文标题】:protecting image filenames for a custom image-click CAPTCHA 【发布时间】:2012-04-16 04:22:33 【问题描述】:我正在通过书籍和自分配项目自学 .NET c# 以获得乐趣。我认为尝试从头开始创建自己的图像单击验证码控件可能是一种很好的体验。从几个选项中识别“正确的图像”并单击正确的图像(猫或其他东西)以将自己识别为人类的那种。
当我试图思考脚本可以通过哪些方式学习我创建的任何内容时,我考虑了它可以简单地从试错中学习正确答案并保存每个图像的文件名的可能性。最终它会知道哪些文件名是“正确的”
我想不出任何方法可以从浏览器或源代码中真正隐藏图像文件名,但每次重命名它们也不切实际。有什么方法可以在每次请求时以某种自定义 MIME 类型“渲染”图像(这是正确的问题吗?我很抱歉),而不是仅仅丢弃 IMG SRC?
这可能是不可能的,但我想我会尝试询问专家。感谢您的宝贵时间!
【问题讨论】:
在这里试试:aspsnippets.com/Articles/… 【参考方案1】:您所做的是为图像提供代理:
<img src="imageServer.aspx?id=12345" />
您最后所做的事情是发送 MIME 标头,然后流式传输文件。这样,所提供的图像和特定文件名之间就没有直接关系。
【讨论】:
这听起来很吸引人,也是一个不错的选择,您是否可以提供任何链接让我继续学习这个?我目前对 mime 标题、流文件等一无所知。即使建议一些谷歌搜索词也会对我有所帮助(除了你帖子中显而易见的词)-感谢你的输入 网站上的某个地方有一个答案。我正在寻找它。 给你:***.com/questions/4684673/… 当我主要了解流程并需要找出坚韧不拔的代码时,该答案看起来不错。我仍然对这里发生的事情有点模糊,但我会用一般的想法打谷歌。谢谢【参考方案2】:您可以从加载的图像创建位图类并保存图像,用于在某处生成位图以验证用户输入
【讨论】:
所以基本上每次循环都会保存一些新图像以供验证码使用?如果你愿意的话,我很好,但我不能说这种情况下的任何负载影响。我喜欢假装我正在为一个大网站(可以支付薪水)而工作,所以我尽量不去学习如何做那些只能支持使用它的开发人员的事情。【参考方案3】:这里的 MSDN 网站上有一个很好的动态图像创建示例
http://msdn.microsoft.com/en-us/library/system.web.httpresponse.outputstream.aspx
【讨论】:
【参考方案4】:我建议为此使用通用处理程序 (*.ashx)。加载调用 aspx 页面的图像的开销更少,而且更简洁。
我无数次将通用处理程序用于图像目的。例如,您可以提供服务器端调整大小。另一个很酷的功能是访问会话值,例如“仅在用户登录时显示图像”
查看http://www.codeproject.com/Articles/34084/Generic-Image-Handler-Using-IHttpHandler 可能是一个好的开始。
【讨论】:
以上是关于保护自定义图像的图像文件名-单击验证码的主要内容,如果未能解决你的问题,请参考以下文章