阻止显示来自用户输入 Sinatra 的 Html 标签?

Prevent Display Of Html Tags From User Input Sinatra?

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

这是我在我的应用程序中的做法,将以下内容添加到 app.rb:

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

那么在你看来你可以这样做:

<%= h user_input %>

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

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

然后在我需要插入 HTML 的任何字符串上调用它。