2014-03-18 52 views
0

我想代碼,使用一個命名爲「h」的方法具有相同的輸出這段代碼在ERB作用:如何在Ruby中定義一個具有相同escapeHTML功能的方法?

<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的開始,使之與「h」的方法有效?

任何幫助表示讚賞。嘗試和錯誤一段時間沒有返回結果。

回答

1

1)創建h helper方法

module CgiHelper 
    require "erb" 
    include ERB::Util 

    def h(s) 
    html_escape(s) 
    end 
end 

2)使用h helper方法

<code> 
    <%= h(the_string) %> 
</code> 
+1

不錯..答案和漂亮的輪廓PIC :) –

相關問題