首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ruby sinatra中防止会话固定

在ruby sinatra中防止会话固定
EN

Stack Overflow用户
提问于 2012-07-05 11:48:15
回答 1查看 1.5K关注 0票数 7

ruby中的大多数会话固定主题都与rails有关。sinatra中是否存在会话固定漏洞?在rails中,我们通常建议在分配会话之前执行reset_session。我们如何在sinatra中防止会话固定?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-27 22:46:16

Sinatra默认使用Rack::Protection gem,它可以防止许多常见的漏洞。您可能对它的会话劫持保护特别感兴趣。以下是Rack::Protection gem防止的一些事情:

跨站点请求伪造

HTTP :如果给定的访问令牌与会话中包含的令牌匹配,只接受不安全的请求。表单令牌:如果给定的访问令牌与会话中包含的令牌匹配,则只接受提交的表单。不希望从Ajax请求中获得这样的令牌。远程令牌:如果给定的访问令牌与会话中包含的令牌匹配,或者请求来自同一来源,则只接受不安全的HTTP请求。数组JSON CSRF: JSON GET API很容易被嵌入为JavaScript,而数组原型已经打了补丁来跟踪数据。如果内容类型为JSON,即使在GET请求时也会检查referrer。HTTP Remote Referrer:如果Referer sic报头设置为不同的主机,不接受不安全的请求。

跨站点脚本

XSS Header:设置X-XSS-Protection header,告知浏览器拦截攻击。点击劫持。转义参数:自动转义Rack::Request#params,因此它们可以嵌入到或JavaScript中,而不会出现任何问题。如果定义了转义字符串,则对其调用html_safe,以避免在Rails中进行双重转义。

点击劫持

框架选项:设置X- frame -Options头来告诉浏览器避免在框架中嵌入页面。

目录遍历

取消转义'/‘和'.',展开path_info。因此,GET /foo/%2e%2e%2fbar变成了GET /bar。

会话劫持

跟踪会话中的用户代理等请求属性,并在这些属性更改时清空会话。这基本上可以防止来自Firesheep的攻击。由于考虑到的所有标头也可能是欺骗的,因此这不会阻止所有的劫持尝试。

IP欺骗

检测(某些) IP欺骗攻击。

与大多数与安全相关的问题一样,拥有web安全的一般知识是一个好主意。不幸的是,没有很多好的教程专门介绍Sinatra安全性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11337630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档