小编Jas*_*don的帖子

在Rails中强制HTML转义3

我遇到了rails自动转义的问题.它目前认为字符串是html_safe(它是),但出于显示目的,我需要它仍然逃避html.这是字符串采取的步骤.

my_string = render(:partial => "set_string", :locals => {:item => @item})
<%= my_string %>
Run Code Online (Sandbox Code Playgroud)

部分是基本的

<h2>Page Header</h2>
<strong><%= item.name %></strong>
<%= item.body %>
etc
Run Code Online (Sandbox Code Playgroud)

我的理解是因为我在视图中直接显示文本(h2等),它假设它是安全的,并且它也正确地逃避了项目输出,这使整个my_string安全.所以,当我尝试用它显示它时

<%= my_string %>
Run Code Online (Sandbox Code Playgroud)

它没有逃避剩余的HTML.我尝试添加h来强制转义,但这不起作用.

所以我的问题是,无论如何强制html转义安全字符串,而不是在字符串上调用会使其不安全的东西?

非常感谢你的帮助.

escaping html-safe ruby-on-rails-3

11
推荐指数
3
解决办法
6952
查看次数

在基于域的Rails中有条件地实现HSTS,SSL和安全cookie

我运行一个应用程序,从单个应用程序和服务器托管来自多个域的网站.我正在将其中一些域名移至SSL,但其他域名则保留在http.我正在运行Rails 4.x. 我相信我不能只使用

config.force_ssl = true
Run Code Online (Sandbox Code Playgroud)

因为那将为所有域实现它,我不想要.

我知道在ApplicationController中我可以做类似的事情

force_ssl if: :ssl_required?

def ssl_required?
  return [secure_domain1, domain2, domain3].include? request.domain
end
Run Code Online (Sandbox Code Playgroud)

但据我了解,这并没有实现HSTS或安全cookie.我的两个问题是:

  1. 有没有比我上面更好的方法来实现它?
  2. 如果我确实采用上述途径,是否有办法有条件地发送安全烹饪并仅为这些域实施HSTS?

如果没有简单的方法来启用HSTS或安全cookie,并且让这些值得麻烦,我可以随时拆分我的应用并将其托管在两个不同的服务器上,其中一个实例包含所有https域,另一个实例仅包含http域.

谢谢你的想法

ssl ruby-on-rails hsts

6
推荐指数
1
解决办法
251
查看次数

标签 统计

escaping ×1

hsts ×1

html-safe ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

ssl ×1