我希望代码使用名为" h"的方法。在ERB中具有相同的输出此代码:
<code>
<%= CGI::escapeHTML(the_string) %>
</code>
输出上述代码:
<!doctype html> <head><meta charset="utf-8"><title>Black Cat</title></head> <img
src=blackcat.gif /> <script type="text/javascript">alert('If you see this, your\'re
vulernable to XSS!');</script>
以网站形式输出上述代码以澄清:http://hills.ccsf.edu/~wly3/cs132a/lab4.cgi
两个问题:
1)我应该如何修改此代码以合并escapeHTML并删除不必要的代码? (我不确定哪个需要/包括我需要)
module CgiHelper
require 'cgi'
require "erb"
include ERB::Util
def h
#code
end
2)我应该如何在开始时修改ERB,以便它与&#34; h&#34;方法
感谢任何帮助。试验和错误暂时没有返回结果。
答案 0 :(得分:1)
1)创建h
辅助方法
module CgiHelper
require "erb"
include ERB::Util
def h(s)
html_escape(s)
end
end
2)使用h
辅助方法
<code>
<%= h(the_string) %>
</code>