2010-05-19 66 views
2

我正在檢查正在開發的Web應用程序中的XSS漏洞。這個Rails應用程序使用h方法來清理它生成的HTML。如何在使用jQueryUI自動完成功能時阻止XSS跨站點腳本攻擊

但是,它確實使用了jQueryUI自動填充小部件(最新版本中的新增功能),其中我無法控制生成的HTML,並且看到標籤沒有被轉義。提供給自動完成的數據在顯示之前立即通過JSON請求檢索。我

可能性:

1)自動完成有一個選項來淨化我不知道

2)有一個簡單的方法在jQuery來做到這一點,我不知道

3)是一個簡單的方法在Rails控制器我不知道(在不能使用h法)

4)在模型中禁止<符號執行此

Sugestions?

回答

1

你是否控制了JSON被提供給插件?如果是這樣,你最好的選擇就是在使用CGI::escapeHTML編碼成JSON之前正確地將數據轉義出來。

這樣,您的數據將被消毒,您將不必擔心XSS。

+0

我這樣做,但標準的方式來消毒它是Rails h方法,它在控制器中不可用。 – theschmitzer 2010-05-19 12:00:26

+1

@ theschmitzer:使用'CGI :: escapeHTML()' – 2010-05-19 16:05:34

+0

完美,謝謝 – theschmitzer 2010-05-21 13:36:58