What’s <%=h xxxx %> means?

在學Ruby on Rails時,常常會看到<%= xxxxx %>這樣的一個Scriptlet
學過Java的人應該不陌生,在JSP裡常常會用到
可是多了一個 h 是什麼意思!?!?

我上Google到處查了好久,就是沒有人提到
有可能是<%=h 這種用法在許多Scripting Language裡蠻常見的
所以太基本了不屑寫,無奈Ruby是我第一個學的Scripting Language(Javascript不算)
後來在Ruby on Rails的書上總算找到
<%=h 那個h的意思,是將後面輸出的文字內容做escape
尤其是在輸出由使用者自行輸入的內容資料時,幾乎都會用到
主要是為了避免使用者不小心輸入XML的元素,造成整個HTML版面被破壞
或者惡意輸入script code來hack page

Code Example:

# to escape the output string
<%=h photo.description %>

Tags:

Leave a Reply