2012-05-25 48 views
0

我正在使用Rails 3.2.x,並且在視圖中有以下代碼。如何顯示沒有XSS問題的地址

<%= order.address.address_array.join('<br />').html_safe %> 

地址是地址1,地址,城市名,國家名,國名和郵政編碼的陣列 - 標準的東西。

由於我將內容標記爲html_safe,如果用戶在城市名稱中輸入<script>something</script.,那麼該JavaScript代碼將被執行。

什麼是乾淨的方式來顯示地址與換行符而不暴露安全問題。

回答

2

在加入之前,您必須在地址數組的每一行上調用html_safe。它應該看起來像這樣(未測試):

<%= order.address.address_array.map(&:html_escape).join('<br />') %> 
+0

這也將用戶輸入數據(城市名稱)標記爲html_safe。不好。對 ? –

+0

是的,我認爲你是對的。嘗試jdoe解決方案或使用.map(&:html_escape)而不是.map(&:html_safe) – sailor

+0

我將使用:html_escape。 –

1

嘗試:

simple_format(h(address)) 

它會逃跑腳本,然後將新增<br/>,而不是換行的。