Gem 咱也来做个Gem-"印象码"视频验证码

southwolf · 发布于 2012年1月06日 · 最后由 tsaikoga 回复于 2014年11月09日 · 4442 次阅读
136

嗯嗯 最近正在学Rails,看到大家都在做东西,咱也来做点什么吧⋯⋯ 印象码是朋友最近正在搞的一个创业项目,一套视频/动态图片验证码方案,后期还会慢慢做成广告平台的形式. 目前样子还比较简陋,欢迎大家围观指教 https://github.com/southwolf/yinxiangma http://www.yinxiangma.com

yinxiangma Gem调用印象码API 提供视频/图片验证码功能。参考了reCAPTCHA gem的写法 Gem配起来很简单, Gemfile里添加

gem "yinxiangma", :require => "yinxiangma/rails"

然后建立config/initializers/yinxiangma.rb 可以直接用我的key, 或者去印象码网站注册自己的API Key。毕竟以后广告计费啥的还是以key为标识

Yinxiangma.configure do |config|
  config.publisher_key  = 'cb9d0fe8dabdea89019d845be3059973'
  config.mode ='live'
end

在需要插入印象码的View中插入<%= yinxiangma_tags %> 需要验证的Controller中插入yinxiangma_valid() 就可以了。 当当当当~

[img]//ruby-china-files.b0.upaiyun.com/photo/6968dfd98b83bb26cba9f50f815b1cdd.png[/img]

目前Gem只实现了基本的显示验证码Widget和成功跳转,写了几行测试代码,明天争取把错误信息给写出来。

欢迎围观指教! 谢谢!

https://github.com/southwolf/yinxiangma http://www.yinxiangma.com

共收到 20 条回复
De6df3

创意很不错,就是不太好看

136

#1楼 @huacnlee 唉,没有美工帮忙啊⋯

8

还能收钱???????

136

#3楼 @hooopo 以后可以利用这玩意投放广告啊。。。中小网站的站长不是最喜欢这种能赚钱的玩意么。。。= =#

96

我有点担心加载速度 现在那个破铁路订票网站的图片验证码都得等半天 变成视频得慢成啥样。。。

96

还是用的flash,ios设备肿么办?

136

#6楼 @young4u_amy 可以先去网站的登录页http://yinxiangma.com/server/signin.php体验一下。。。至少目前还没有跟我们吐槽速度的客户。。。

136

#7楼 @young4u_amy 嘿嘿嘿,检测到UserAgent=ios的时候会切到HTML5 Video Tag的。。。

243

看好这个项目,不过门槛不高.还有就是captcha的生成能力.如果没有快速大基数的生成的能力,那基本就只剩广告了.

136

#10楼 @Saito 目前验证码生成倒是不难,图片验证码可以用php GD/VG+ImageMagick之类N多方案,压制视频AVS+mencoder之类的也挺快。但目前只能实现字幕平移、翻转之类最简单的效果,估计还是扛不住OCR破解。下一步准备加入扭曲、文字粘连之类的字幕特效,加强安全性。

136

#10楼 @Saito 另外由于广告系统的需求(可能需要嵌入广告词),现在的做法还是批量生成验证码和视频,放在数据库里,输入时进行比对。所以也不需要实时生成大量验证码。至于穷举攻击,目前先做个了简单的行为分析,发现暴力穷举的,暂时提高安全级别或者直接封一段时间IP

243

#12楼 @southwolf 暴力穷举很容易误杀,同学校,同公司都是同一ip出口.

碰撞破解captcha还是很普遍的技术,只需要人工小范围识别一些,就可以刷新识别很多了.不过说到底都是技术问题.

关于创意层面还是挺好的,很有想法的项目. ;-)

136

#13楼 @Saito 目前采取的方案主要是:发现短时间内多次输入错误的,就加载一套更复杂(比如文字翻滚)的验证码。如果确实发现大量非正常请求才会封禁IP,并切换回系统(Discuz论坛之类)本地验证码,保证用户体验。

243

#14楼 @southwolf 碰撞破解根本不需要填错,只需要识别出这个在不在已识别库就可以了,不在就立刻刷新.直到识别到一个已在库的,立刻就成功了.

所以才要强调生成能力,因为你仓库越小,别人需要识别的就越少.

假如每天生成30w个captcha. 想用碰撞破解的人只需要人工识别1000个,平均每300次就可以碰撞成功一次.

利用100个代理站,同时平均刷三次就能识别一个,这个效率是很高的.

如果你生成过captcha,30w的量还是需要很多时间的,而实时生成则基本不可能.

只要你的网站账号有价值.. 什么captcha基本都是浮云..

8

#15楼 @Saito 好吧 和破解hashed password一样哇

96

#15楼 @Saito +1 还有人工打码呢

9484

果然很强大呀 ~

8807

很有创意

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册