法甲

采访CaptchaMvc的创建者编制

2020-11-18 04:18:12来源:励志吧0次阅读

InfoQ采访了CaptchaMvc的创建者Vyacheslav Volkov,与他一起探讨了CaptchaMvc项目以及他对验证码未来的看法。

InfoQ:是什么促使你创建自己的验证码类库?

那个时候我正开始使用MVC 3框架。因为需要在自己的项目中使用验证码,所以我开始寻找一个能够解决我的问题的解决方案。但是我能够找到的所有方案都仅能够在MVC 2上使用,有一些甚至根本无法使用。在搜索了这么多内容之后,我决定编写自己的验证码实现,因此也就出现了CaptchaMvc类库的第一个版本。这个版本非常简单,但是即使是这样,它也是受欢迎的。

InfoQ:CaptchaMvc和其他的验证码类库之间有什么不同?

CaptchaMvc是一个有弹性的、简单的解决方案,它能够解决你项目中所有与验证码相关的问题。你需要做的所有事情就是向你的项目中添加一个类库,添加之后验证码就准备就绪了。该项目拥有使用验证码所需要的所有内容:

有两种类型的验证码,普通的和数学的 支持在session或者cookie中存储验证码 支持智能验证码 能够很容易地扩展默认实现该项目也在不断地演变,我会尽量支持所有人提出的需求。我认为这些就是区分它和其他项目的主要内容。

InfoQ:你能预见一下什么时候将不再需要验证码么?或者说可能不再有效?

我们都在梦想那个时候。针对机器人的保护将会一直需要,而验证码仅仅是实现这种保护的方式之一。有各种各样不需要验证码的技术。例如,一些开发者会创建一个假的输入域,同时让该域对用户隐藏,当一个机器人试图填充表单的时候,它很有可能会填写该域。

尽管如此,我们也很难说验证码能够有效地防止垃圾邮件特别讨论了北京在应对交通压力时走出的优先支持公共交通的新路。,有许多服务允许绕过验证码。验证码仅能够增强你的站对机器人的防护,但是并不能提供全面的保护。

InfoQ:你列出该项目支持 MVC 3、4和5。这些版本之间真的有很多区别么?

这些版本之间几乎没有什么不同,仅仅是类库中使用了MVC 4中添加的AllowAnonymousAttribute属性。

InfoQ:如果你可以修改 MVC插件/类库支持的任何内容,那么你会修改什么?

MVC是一个非常了不起的Web框架,我喜欢它所使用的架构解决方案。对于 Web API有一个地方我不喜欢,那就是我们不能多次读取请求中的内容。我清楚为什么要这么设计, Web API中的内容体被看作是仅能够读取一次的单向流,但是有时候这样让人非常不方便。

我想要改变WPFSilverlightXAML中的很多内容,但是这个主题应该在另一个采访中讨论。

InfoQ:什么是智能验证码,它和正常的验证码之间有什么区别?

基本的想法是让验证码对用户更加友好,在最好的情况下用户永远不会看到验证码。有多种技术能够让验证码更加友好。例如,有一种技术称为假输入域。CaptchaMvc支持多种技术能够区分用户和机器人。让我简短的介绍一下每一种技术:

假的输入(类名FakeInputIntelligencePolicy)使用一个假的输入域,正如我前面所写的。 JavaScript(类名JavaScriptIntelligencePolicy)尝试着去检查用户是否启用了JavaScript,如果用户禁用了JavaScript那么用户必须输入一个验证码 响应时间(类名ResponseTimeIntelligencePolicy)允许你设置一个时间,在该时间内验证码将被认为无效。假如一个机器人请求一个表单,填充它并提交页面加载和提交之前的间隔时间可能会少于一秒没有人能够做到这一点。 多种方式的组合(类名MultiIntelligencePolicy)允许你将不同的策略联合到一起。我想要给出责令停业整顿一个允许你设置智能验证码的代码示例,下面是一个我在我的站上使用的代码示例:

elligencePolicy = new MultiIntelligencePolicy(new FakeInputIntelligencePolicy(),new JavaScriptIntelligencePolicy(),new ResponseTimeIntelligencePolicy(omSeconds(3)));现在,我正编写一个将会支持 Web API的新版本。到目前为止这就是我的所有计划,但是将来的事情可能会有所变化,我将会添加一些其他的内容。

小儿手足口病服用健儿清解液
手上的湿疹都抓破了怎么办
72小时避孕药有效范围
TX运动
分享到: