Gun*_*ter 4 ruby xss ruby-on-rails-4
Code Climate 在 html.haml 之一的这行代码上给了我一个“跨站脚本”错误:
= link_to 'Next', @redirect_uri, data: { no_turbolink: true }, class: 'btn btn-primary'
Run Code Online (Sandbox Code Playgroud)
在控制器中,@redirect_uri 是:
@redirect_uri = params[:redirect_uri] << "&show_more_pages=false"
Run Code Online (Sandbox Code Playgroud)
params[:redirect_uri] 是一个非常长的 url,其中包含重定向 uri。
究竟出了什么问题,我怎样才能让 Code Climate 满意?
Code Climate 正在抱怨,因为您正在将潜在的用户提供的内容嵌入redirect_uri到您的页面中。该 URI 可能是 JavaScript,它将在用户单击链接时执行。因为用户单击页面呈现的链接,JS 就可以访问该页面,就像您自己编写代码一样,因此狡猾的人可以窃取您只希望用户和服务器有权访问的各种信息。
使用如下链接尝试一下:
http://your.web.site/?redirect_uri=alert('Boom');
Run Code Online (Sandbox Code Playgroud)
由于您在 Rails 中,因此您可以访问sanitize,它会为您清除 URL 中的邪恶部分,并且我希望代码气候会安静下来。还有一些可能有帮助的问题:
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |