Rails安全导读【五】 - 编程入门网
诱到一个被攻击者控制的站点。在这个站点有一个制作好的IMG-tag, 该tag的结果是,发送一个 http get请求去改变Google Mail的邮件过滤器设置。如果这个受害者登陆到Google Mail,攻击者会改变过滤器设置将他的所有邮件转发到攻 击者的邮箱里。这几乎和劫持整个帐户一样邪恶。对策是, 审核你的web应用逻辑来堵上所有的XSS和CSRF漏洞。
Rails安全导读【五】(2)时间:2011-07-18 51cto博客 blackanger译7.3. 验证码(CAPTCHA ) — 一个验证码是质问-响应的测试以便于确定这个响应是不是被一个计算机产生的。它往往通过让用户输入一副字母被扭曲的图片上的字 符,来保护评论不被自动的垃圾发布机器人侵害,这个消极的CAPTCHA的主意,不是去让用户证明他是一个人,而是让一个机器人证明他是个机 器人。 不仅仅是垃圾信息发布机器人是一个问题, 不要忘了还有自动登陆机器人。一个流行的CAPTCHA API是reCAPTCHA , 它是显示来自于旧书的 两个单词的扭曲图片。它还增加了一个直角线,而不是一种扭曲的背景和早期CAPTCHAS做的那样对文字的高水平包装,因为后者被破解了。作 为奖励,使用reCAPTCHA有助于数字化旧书。ReCAPTCHA 也有一个同名的Rails插件实现这个API。 通过这个API你可以得到两个key,一个公有key,一个私有key,你必须把他们放到你的Rails环境。之后,你可以在view层使用 recapcha_tags方法,在controller层使用verify_recaptcha方法。如果校验失败verify_recaptcha会返回false。使用CAPTCHAs的问题是,它 们很麻烦。一些视障用户对某些扭曲的CAPTCHAs难以阅读。这个消极的CAPTCHA的主意,不是去让用户证明他是一个人,而是让一个机器人证明 他是个机器人。 大多数的机器人是愚蠢的,它们检索网络,并且把垃圾信息放到它们能找到的每一个表单域里。Negative CAPTCHAs趁机利用它们的愚蠢, 在表单里包含一个“蜜罐”,人类用户可以通过JavaScript 和CSS来隐藏它。 这里有一些如何通过JavaScript/CSS来隐藏‘蜜罐’域的ideas: * 放置这些fields到页面的不可见区域 * 使这些元素非常小,或者颜色和页面的背景色一样 * 就让它们显示在页面上,但是要告诉人类用户,让它们为空。 大多数简单的negative CAPTCHA就是一个隐藏的‘蜜罐’域。在服务端,你可以检测这个域的值:如果它包含任意文本,它肯定是个机器人 。然后你可以忽略或者是返回一个有意义的结果,但是不把其保存到数据库里。这种方法会让机器人感到满意并离开。你这样做也会使用户更 麻烦。 在Ned Batchelder''s blog post,你能找到更先进的negative CAPTCHAs文章 : * 包含一个存储当前UTC时间戳的字段,并在服务端检查它,如果它是太遥远的过去,或者是将来,那么这个form是无效的。 * 随机的字段名 * 包含一个以上所有类型的‘蜜罐’字段,包括提交按钮。 请注意,这仅仅是使你免于自动机器人的骚扰,而对于那些有针对性的完全定制的机器人则不能阻止。因此在Negative CAPTCHAs可能不是 很好的保护措施。 7.4. 日志 — 告诉Rails不要把密码放在日志文件里。 默认情况下,Rails会记录到web应用的所有请求。但是日志文件会是一个巨大的安全问题,因为它们可能包含登陆证书或是信用卡号码等等 。设计一个web 应用的安全理念应该是考虑如果攻击者获得(全部)访问web服务器的权限会发生什么事情。如果日志文件以明文列出secret和 密码,那么把它们加密保存到数据库里是完全无用的。通过在controller里的filter_parameter_logging方法你可以在log文件里过滤某些请求 参数。这些参数会在log文件里会以 [FILTERED]标记。
Rails安全导读【五】(3)时间:20 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |