我有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
是找到有效记录,对吗?用户还能如何操纵它?
谢谢!
编辑:我绝对应该防止找不到文章并引发错误的情况,但我认为这更像是一个糟糕的设计而不是安全漏洞