防止从用户输入Sinatra显示Html标签?

时间:2015-06-02 14:11:26

标签: ruby heroku sinatra

我有一个应用程序,用户可以输入他们想要的任何内容,它将显示在单独的页面上。我想让它显示用户输入的内容,而不是将标签作为html处理。例如,如果用户输入let me use a <hr>它实际上不会创建水平线,则会输出let me use a <hr>。对于用户输入中的所有html标记,这必须是普遍的。

2 个答案:

答案 0 :(得分:1)

这是我在我的应用中执行的操作,将以下内容添加到app.rb:

helpers do
  include Rack::Utils
  alias_method :h, :escape_html
end

然后在您看来,您可以这样做:

<%= h user_input %>

答案 1 :(得分:0)

我实际上最终解决了我自己的问题。我做的是写这个函数:

def func(var)
     var = var.gsub(/[<]/,"&lt")
     var = var.gsub(/[>]/,"&gt")
end

我在输出的任何刺痛中都打电话给它。