2017-05-29 21 views
0

我正在寫一個簡單的Web應用程序這表明一個共同Reflected XSS attack情況下,我需要注入不可信的用戶數據來從服務器返回到HTML頁面ingored。「<」字符的jQuery的html()方法

我需要使用類似jQuery html()的方法,因爲與text()方法不同,它不會將輸入變爲簡單的字符串。

的問題是,經過「<」字符的jQuery html()方法忽略了隨之而來。

這是我的代碼的相關部分:

if($('input#search-keyword').val()){ 
 
    
 
    //Fetch the search keyword from the hidden input field 
 
    var keyword = $('input#search-keyword').val(); 
 
    
 
    //Inject the keyword to the DOM. 
 
    $('span#keyword-reflect').html(keyword); 
 

 
    //ISSUE: 
 
    //if keyword == '/><script>...</script>' it only injects />' 
 
}

我能做到這一點用任何其他方法,除了eval或jQuery的html()

回答

0

它不容忽視。 <script>運行當它分配給innerHTML,但它確實成爲DOM的一部分。如果你想有一個腳本運行,最簡單的方法是<img>是無法加載和onerror處理程序:

<img src=x onerror=alert(1)> 
+0

你是正確的。它不被忽略,但它只是沒有運行。在onerror處理程序中使用img標記完美地工作。謝謝 – fbid

相關問題