gpt4 book ai didi

ruby-on-rails - 为什么我的 View 被标记为 XSS 漏洞?

转载 作者:行者123 更新时间:2023-12-04 05:36:25 24 4
gpt4 key购买 nike

我有一个显示文章内容的show 路由

Controller :

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 到底是什么,是什么让它容易受到攻击?如果有人将一些恶意文本或输入注入(inject)到路由中的 params[:id] 字段(例如 /articles/BAD_INPUT),则 Article.find() 找不到文章并引发错误

View 呈现的唯一方式是找到有效的 Article 记录,对吧?用户还能如何操作它?

谢谢!

编辑:当找不到文章并引发错误时,我绝对应该再次保护,但我认为这更像是一个糟糕的设计,而不是安全漏洞

最佳答案

Brakeman 发出警告是因为代码正在从数据库中获取信息并将其输出到 View 中而没有转义。默认情况下,Brakeman 将数据库中的值视为潜在危险。在这种情况下,您可能知道文章内容是 HTML 并且无需转义即可安全输出。如果您不希望使用数据库中的值警告 XSS,您可以使用 --ignore-model-output 选项。

(您在答案中链接的问题并没有真正相关。Brakeman 应该警告使用具有潜在危险值的 raw/html_safe。)

关于ruby-on-rails - 为什么我的 View 被标记为 XSS 漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com