2016-05-18 44 views
0

私は現在下記のコードを使用していますが、安全ではなく、XSSを使用してウェブサイトを悪用するために使用できます。AJAX応答のためにinnerHTMLを使用して移動します。 (コードは応答していません)

作品古いコード、:応答を与えることはありません

document.getElementById('response').innerHTML = xmlHTTP.responseText; 

新コード:

var divContent = xmlHTTP.responseText;    
    var getRes = document.getElementById('response'); 
    if (getRes.innerText) { 
     getRes.innerText = divContent; //For Safari, Google Chrome and MSIE. 
    } 
    else 
    if (getRes.textContent) { 
     getRes.textContent = divContent; //For Firefox. 
    } 
} 

を以下の基本的なHTML本部:

<div id="response"></div> 

はさらに出力がHTMLでは、テキストではありません。

答えて

1

divが空です。 innerTextまたはtextContentが定義されている場合、空の文字列になります。空の文字列は真の値ではありません。

代わりにテキストノードを作成します。これは標準であり、よくサポートされています。あなたは常に可能な第1の要素を空にする必要がある場合は

document.getElementById('response').appendChild(
    document.createTextNode(
     xmlHTTP.responseText 
    ) 
); 

は:

document.getElementById('response').innerHTML = ""; 
+0

これはほとんど存在しているが、出力はHTMLです。 – Mattlinux1

関連する問題