Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未缩放模型属性_Ruby On Rails_Ruby_Ruby On Rails 4_Brakeman - Fatal编程技术网

Ruby on rails 未缩放模型属性

Ruby 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

我已经安装了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.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这里的类似问题:这不是一个类似的问题。请再检查一遍