Ruby on rails 未缩放模型属性
我已经安装了brakeman并获得了安全漏洞 这是我的警告 Unescaped model属性在第24行附近内联呈现:render(内联=>SendGridMailer.WeeklyNewsletterFactory.new.email(:preview=>true)).html_part.body.raw_source,{}) 行:24Ruby on rails 未缩放模型属性,ruby-on-rails,ruby,ruby-on-rails-4,brakeman,Ruby On Rails,Ruby,Ruby On Rails 4,Brakeman,我已经安装了brakeman并获得了安全漏洞 这是我的警告 Unescaped model属性在第24行附近内联呈现:render(内联=>SendGridMailer.WeeklyNewsletterFactory.new.email(:preview=>true)).html_part.body.raw_source,{}) 行:24 render inline: SendGridMailer.weekly_email([current_user], email).html_part.bod
render inline: SendGridMailer.weekly_email([current_user], email).html_part.body.raw_source
我已经按照brakeman的建议尝试了这个解决方案,但在这样做之后,我开始得到无法解析的错误
render(inline: SendGridMailer.weekly_email([current_user], email).html_part.body.raw_source,{})
轨道-4.2.4刹车手-3.1.2
Ruby-2.3.1当您调用
render inline:…
时,Rails将把传入的文本视为ERB模板。这意味着,如果您提供的字符串中有任何
标记(或者攻击者可能插入标记),它们将作为Ruby代码执行
如果这就是你想要的,那么就没有问题了。但请记住这是危险的如果攻击者可以操纵文本插入ERB标记,他们可以在您的服务器上执行任意代码。
如果您只想输出一些HTML,请使用
render html: SendGridMailer.weekly_email([current_user], email).html_part.body.raw_source.html_safe
(请注意,如果您没有在电子邮件中转义用户输入,则可能会发生错误)
如果要输出纯文本,请使用
render plain: SendGridMailer.weekly_email([current_user], email).html_part.body.raw_source
此外,Brakeman不会输出建议的代码修复,因此您可能会误解报告。当您调用
render inline:…
时,Rails会将传入的文本视为ERB模板。这意味着,如果您提供的字符串中有任何
标记(或者攻击者可能插入标记),它们将作为Ruby代码执行
如果这就是你想要的,那么就没有问题了。但请记住这是危险的如果攻击者可以操纵文本插入ERB标记,他们可以在您的服务器上执行任意代码。
如果您只想输出一些HTML,请使用
render html: SendGridMailer.weekly_email([current_user], email).html_part.body.raw_source.html_safe
(请注意,如果您没有在电子邮件中转义用户输入,则可能会发生错误)
如果要输出纯文本,请使用
render plain: SendGridMailer.weekly_email([current_user], email).html_part.body.raw_source
此外,Brakeman不会输出建议的代码修复,因此您可能会误解报告。您可以使用Premailer::Rails::Hook.perform
Premailer::Rails::Hook.perform(SendGridMailer.weekly_email([current_user], email)).html_part.body.raw_source
您可以使用Premailer::Rails::Hook.perform
Premailer::Rails::Hook.perform(SendGridMailer.weekly_email([current_user], email)).html_part.body.raw_source
为什么我在内联渲染时得到此警告未场景化模型属性。以及如何解决这个问题。Brakeman说这是跨站点脚本漏洞第24行是什么?我已经插入了第24行的代码render inline:SendGridMailer.weekly_email([当前用户]),email.html_part.body.raw_Source这里的类似问题:这不是一个类似的问题。请再看一次为什么我在内联渲染此警告未场景化模型属性。以及如何解决这个问题。Brakeman说这是跨站点脚本漏洞第24行是什么?我已经插入了第24行的代码render inline:SendGridMailer.weekly_email([当前用户]),email.html_part.body.raw_Source这里的类似问题:这不是一个类似的问题。请再检查一遍