2009-05-06 56 views
0

我已經創建了一個供用戶集成到他們的網站的iFrame組件。當頁面加載到遠程站點時,需要從URL字符串傳遞一個GET變量。在這種情況下,父頁面將被調用爲http://www.theirsite.com/tracking=12345,並且跟蹤變量應該在頁面呈現時寫入iframe的遠程頁面的html代碼中。如何在Rails中回顯GET變量?

我已經創建了除rails之外的每種主要語言的代碼版本。代碼的PHP版本如下所示。

作爲一個完整的Rails新手,我希望有人可以爲類似於htmlentities()的XSS保護生成Rails類似的代碼片段。

我發佈了代碼供人抓取和複製到他們的網站。

... src="mysite.com?tracking=<?php echo htmlentities($_GET['tracking']); ?>" ... 

回答

1

params哈希包含了所有GET和POST變量的集合:

... src="mysite.com?tracking=<%= CGI::escape(params[:tracking]) %>" ... 

CGI:escape()功能編碼的URL參數,並可能有助於防止XSS攻擊。

+0

其實,html_escape/h在這裏使用是錯誤的。您需要進行網址編碼。最好的解決方案:爲以下人員提供幫助:Addressable :: URI.encode_component(value,Addressable :: URI :: CharacterClasses :: QUERY)蹩腳的解決方案:URI.escape(value) – 2009-05-06 19:20:47

1

如果你需要得到特別的變量,你可以這樣做:

... SRC = 「mysite.com?tracking= <%= request.GET中[」 跟蹤 「]%>」