防止在红宝石sinatra会议固定

大多数红宝石的会话固定主题都与轨道有关。 sinatra中有会话固定漏洞吗? 在rails中,我们大多建议在分配会话之前先执行reset_session。 我们如何防止sinatra中的会话固定?


Sinatra默认使用Rack :: Protection gem,它可以抵御很多常见的漏洞。 您可能对会话劫持保护特别感兴趣。 这些是Rack :: Protection gem所保护的部分内容:

跨站请求伪造

真实性标记:只有在给定的访问令牌与会话中包含的令牌相匹配时才接受不安全的HTTP请求。 表单令牌:只有在给定的访问令牌与会话中包含的令牌相匹配时才接受提交的表单。 不要期望来自Ajax请求的这样一个令牌。 远程令牌:只有在给定的访问令牌与会话中包含的令牌相匹配或请求来自同一个来源时才接受不安全的HTTP请求。 JSON CSRF: JSON GET API可能被嵌入为JavaScript,而Array原型已被修补以跟踪数据。 如果内容类型为JSON,则甚至在GET请求上检查引用链接。 远程引荐:如果Referer [sic]标头设置为不同的主机,则不接受不安全的HTTP请求。

跨站脚本

XSS标题:设置X-XSS-Protection标题,告诉浏览器阻止攻击。 点击劫持。 Escaped Params:自动转义Rack :: Request#params,以便它们可以嵌入到HTML或JavaScript中,而不会有任何其他问题。 如果已定义,请在转义字符串上调用html_safe,以避免在Rails中发生双重转义。

点击劫持

框架选项:设置X-Frame-Options标头以告知浏览器避免将页面嵌入到框架中。

目录遍历

Unescapes'/'和'。'扩展了path_info。 因此GET / foo /%2e%2e%2fbar变成GET / bar。

会话劫持

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

IP欺骗

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

与大多数安全相关的问题一样,具有Web安全性的常识是一个不错的主意。 不幸的是,没有很多专门针对Sinatra安全的优秀教程。

链接地址: http://www.djcxy.com/p/61263.html

上一篇: Preventing session fixation in ruby sinatra

下一篇: yii controller action unit testing without selenium