繁体   English   中英

在我的情况下,我可以/应该做些什么来关心安全性?

[英]What could/should I do to care about security in my case?

我正在使用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')

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节“注射”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM