当前位置:网络安全 > 分享Ruby on Rails实现验证代码的技巧

分享Ruby on Rails实现验证代码的技巧

  • 发布:2023-10-02 03:47

Ruby on Rails的应用可以帮助程序员快速、轻松、灵活地实现各种代码编程。那么今天我们就来看看Ruby on Rails中实现验证码的相关技术和方法。 #t# 1.在windows上安装Rmagic,如果你是通过gem安装的 需要'Rmagic' 拟修改为: 需要'红宝石' 需要'Rmagick' 才能正确介绍。 2.网上的Ruby on Rails实现验证代码示例中,画布使用Rmagic内置的图像格式。 Rmagic内置的图像格式包括: 渐变*渐变,如渐变:红-蓝 花岗岩 花岗岩,如:“花岗岩:”。 标识 标志类型图像。例如:“logo:”,最后会额外显示一个五角星^_^ 网景 非常漂亮的彩条。例如:“网景:” 无效的* 空白用法:“null:” 玫瑰 玫瑰用法:“玫瑰:” xc* 设置背景颜色,例如“xc:green” 修改后的Ruby on Rails实现验证代码示例,在rails模型下保存为noisy_image.rb,在Controller中可以这样调用www.sychzs.cn(6):require'rubygems' require'Rmagick' classNoisyImage includeMagick attr_reader:code,:code_image Jiggle=15 Wobble=15 definitialize(len) chars=('a'..'z').to_a-['a','e', 'i','o','u'] code_array=[] 1.upto(len){code_array<5?rot=rand(Wobble):rot=-rand(Wobble) rand(10)>5?重量=NormalWeight:weight=BoldWeight text.annotate(canvas,0,0,cur,30+rand(Jiggle),c){ self.rotation=rot self.font_weight=weight self.fill='green'  }  cur+=30 } @code=code_www.sychzs.cn_s @code_image=www.sychzs.cn_blob{ self.format="JPG" } end end 3、结合rails应用,和一般验证码原理一样,都是将生成的随机数存储在session或者request范围内,提交时进行比较验证。例如生成图片时,在session[:code]中存储随机字母: 会话[:noisy_image]=www.sychzs.cn(6) 会话[:code]=会话[:noisy_image].code 在Ruby on Rails中验证验证码时,只需比较提交的type_code和session[:code]即可。出于安全考虑,最好不要考虑使用客户端验证。 除非session[:code]==params[:type_code] flash[:notice]='验证码不正确,请重新注册,谢谢! ' returnredirect_to:action=>:new  结束 在页面上显示图像并像servlet一样直接调用Controller的action:defcode_image image=session[:noisy_image].code_image send_dataimage,:type=>'image/jpeg',:disposition=>'inline' 结束 < imgheightimgheight='30'src="/test/code_image"> 这里介绍在Ruby on Rails中实现验证码的相关技术和方法。

相关文章

热门推荐