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

southwolf · 2012年01月06日 · 最后由 tsaikoga 回复于 2014年11月09日 · 7176 次阅读

嗯嗯 最近正在学 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() 就可以了。 当当当当~

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

欢迎围观指教! 谢谢!

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

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

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

还能收钱???????

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

果然很强大呀 ~

很有创意

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