2015-12-19 59 views
0

裏面我有這樣的代碼:如何執行JavaScript的jQuery選擇

$('.' + InjectionPoint).removeClass('classname'); 

其中InjectionPoint是部分由最終用戶控制的,顯然這個代碼是容易DOM XSS,但是否真的利用的?以及攻擊向量應該如何?

感謝

回答

4

在你在你的基礎的信念,「這個代碼很容易受到DOM XSS」?

在此基礎上的答案,那是在舊版本的jQuery的事實,但不得遲於1.6.3任何版本:https://stackoverflow.com/a/11170073/877682

+1

這是一個網絡安全掃描器,報告了這個問題,但我認爲你是正確的,它不是可利用的,但是沒有一種方法可以在選擇器中評估表達式,即使只是爲了開發目的 – ksr

0

這肯定是受到XSS。看看這篇描述攻擊者如何去做的文章:https://ttmm.io/tech/jquery-xss/

基本上,作者建議您使用document.querySelectorAll()而不是jQuery選擇器函數。有人評論說這對於jQuery 1.7及以上版本來說不是問題,但不要在此引用我的意思。

總的來說,信任你的用戶給你的東西從來都不是好主意。