gpt4 book ai didi

ruby-on-rails - 在我的案例中,我可以/应该做什么来关心安全性?

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:27 24 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 3.1.0,我想关注使用 I18n gem 的安全性用于国际化目的。

此时我有:

# in .yml file
key_1_html: "%{var_1} is just a test"

# in view, controller and model files
I18n.t('key_1_html', :var_1 => 'Test variable')

测试变量 是/代表来自用户的输入,所以我应该将其视为潜在的黑客攻击。

我可以/应该做什么来关心我的案例的安全性?

最佳答案

在正常的 Rails (3.x) 用法下,您无需执行任何操作。

即使某些 HTML 代码或 javascript 进入了从 i18n 返回的字符串,如果您以普通方式输出从 i18n 返回的字符串,其中的任何 HTML(无论是来自模板还是变量)都将被转义并显示为网页中的文字来源。

您必须手动将 i18n 返回的字符串标记为 .html_safe 才能将其作为 html 源提供。

所以不要那样做。

自己试试看。

I18n.t('key_1_html', :var_1 => '/<script>danger!</script>')

现在将其输出到 ERB 模板中,看看会发生什么。

如果您使用 i18n 做一些奇怪的事情,而不是通过典型的 Rails 模板将其输出到浏览器,那么您需要说明是什么,以及您关心的是什么。

我想也许本指南就是您要找的,它是对 Rails 安全问题的概述:

http://guides.rubyonrails.org/security.html

参见第 8 节“注入(inject)”。

关于ruby-on-rails - 在我的案例中,我可以/应该做什么来关心安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8828629/

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