2012-08-22 36 views
0

,所以我想暴露在野外的正則表達式查詢在我的模型,使得用戶可以要求傳遞的正則表達式PARAMS到紅寶石

http://localhost:3000/myview.json?field=^hello, (there|world).* 

,所以我知道我必須改變我的路線以識別通配符等,我可以很容易地在我的控制器中做一個Regexp.new()將其轉換爲一個真正的正則表達式(我在後面使用mongomapper)。

這個問題是XSS潛在的巨大安全漏洞。

我應該爲此擔心嗎?我怎麼能安全地讓用戶用正則表達式字符串查詢。

(我不是太困擾有關用戶錘擊數據庫...還)

+0

你不應該改變你的路線(網址是一樣的,你只是包括參數)。我也不明白什麼是XSS漏洞。 –

+0

我相信默認路由會過濾掉非'\ w +',所以正則表達式字符不會通過。我擔心的XSS是有人可以注入一些JavaScript代碼到正則表達式。 – yee379

+0

你必須解決約束條件才能獲得路徑中的某些字符,但不需要任何特殊的參數。你確實需要正確的URI編碼參數。 –

回答

0

正則表達式將無法除非有一些真正的錯Regexp.new執行任意代碼執行。因此,如果我們假設Regexp.new將會生成一個有效的正則表達式,或者失敗或者做一些其他的事情,那麼您已經很安全了,而不必清理傳入的字符串。

+0

對我來說足夠好的解釋! – yee379