【发布时间】:2016-05-29 16:27:28
【问题描述】:
我有一个显示我文章内容的show 路由
控制器:
def show
@article = Article.find(params[:id])
end
查看:
...
<li class="content"><%= @article.content.html_safe %></li>
...
在运行 Brakeman 时,它会将上述内容标记为潜在的跨站脚本 (XSS) 漏洞
Unescaped model attribute near line 34: Article.find(params[:article_id]).content
我试图弄清楚 XSS 到底是什么,以及是什么让这个漏洞变得脆弱?如果有人在路由中的params[:id] 字段中注入了一些恶意文本或输入(例如/articles/BAD_INPUT),那么Article.find() 将找不到该文章并引发错误
视图呈现的唯一方法是找到有效的Article 记录,对吗?用户还能如何操纵它?
谢谢!
编辑:我绝对应该防止找不到文章并引发错误的情况,但我认为这更像是一个糟糕的设计而不是安全漏洞
【问题讨论】:
标签: ruby-on-rails security xss brakeman