快速业务通道

Rails与web安全[Web安全大家谈] - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
n = ? AND password = ?", params[:name],

params[:password]])

2。用hash(rails版本是在1.2以上)

User.find(:first, :conditions => {:login => params[:name],

:password => params[:password]})

3。在保证上述两点的基础上,把查询方法放在model里。这样会更加安全。

Rails与web安全[Web安全大家谈](3)

时间:2011-11-09 51cto博客 blackanger

4. 所有rails根据model属性自己生成的find_by_xxx方法是很安全的,比如:

find_by_name, 等。

5. find_by_sql 也是很安全的。

A3 - Malicious File Execution

这个安全隐患在Rails1.1.6就已经解决了,1.1.6以下的项目需要打个补丁,但是rails2.0出来了,还 是升级吧

相关:

Working with files

这是关于文件上传的安全策略:

http://www.rorsecurity.info/2007/03/27/working-with-files-in-rails/

参见:Agile 开发之道2nd,610页。

A4 - Insecure Direct Object Reference

在rails里,只要注意不要把内部的controller方法暴露出来,即,不要把private方法误写到publice 方法里就行,对一些action和controller做一个全局的异常处理,就不会被攻击者把你应用程序攻击的肠 子都流出来了。

A5 - Cross Site Request Forgery (CSRF)

传说中的跨站伪装请求攻击(通常也叫one click attack"或者session riding,通常缩写为CSRF或者 XSRF)

听起来有点像css/xss跨站脚本攻击有点类似,但实质不同,CSRF比起css/xss来更加危险,因为这种 攻击难以防范(主要是因为不大流行,所以防范资源比较缺乏)。XSS利用站点内的信任用户,而CSRF则 通过伪装来自受信任用户的请求来利用受信任的网站。网网这两种攻击方法是买一送一的关系。利用XSS 伪装受信任用户,利用这个受信任用户来进行CSRF攻击来利用网站。

例子:一个网站用户Bob可能正在浏览聊天论坛,而同时另一 个用户Alice也在此论坛中,并且后刚刚 发布了一个具有Bob银行链接的图片消息。设想一下,Alice编写了一个在Bob的银行站点上进行取款的 form提交的链接,并将此链接作为图片tag。如果Bob的银行在cookie中保存他的授权信息,并且此cookie 没有过期,那么当Bob的浏览器尝试装载图片时将提交这个取款form和他的cookie,这样在没经Bob同意的 情况下便授权了这次事务。

CSRF是一种依赖web浏览器的、被混淆过的代理人攻击(deputy attack)。在上面银行示例中的代理 人是Bob的web浏览器,它被混淆后误将Bob的授权直接交给了Alice使用。

下面是CSRF的常见特性:

依靠用户标识危害网站

利用网站对用户标识的信任

欺骗用户的浏览器发送HTTP请求给目标站点

CSRF攻击依赖下面的假定:

攻击者了解受害者所在的站点

攻击者的目标站点具有持久化授权cookie或者受害者具有当前会话cookie

目标站点没有对用户在网站行为的第二授权

Rails与web安全[Web安全大家谈](4)

时间:2011-11-09 51cto博客 blackanger

防范措施

在form中包含秘密信息、用户指定的代号作为cookie之外的验证。那些导致对安全产生"副作用"的请 求应该总使用Post方式发送。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式 却会留下数据尾巴

Rails的策略:

1。慎用get请求,也就是上面所说的, 那些导致对安全产生"副作用"的请求应该总使用Post方式发送 。

2。Use the Csrf_killer plugin to include a security token in forms.(插件方式过期,但是使 用rails2.0y一下版本的项目需要注意)

在Rails2.0中,通过在form中增加特殊字段来防止CRSF攻击,这一功能在新应用中默认是开启的。

A6 - Information Leakage and Improper Error Handling

一些重要的信息泄露一般是通过程序里的异

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号