2010-12-03 8 views
4

現在のページの場所をDOMに書き込む必要があるスクリプトを作成しています。私はXSSが心配です。次のJavascriptスニペットはXSSから安全ですか?私は同じことを達成するためのdocument.write()を使用すると、さまざまなブラウザで安全ではありませんが、DOMアクセスメソッドを使用している場合、私はすべてのソースが議論見ていませんでした。ということを知っているsetAttribute()とXSS

var script = document.createElement('script'); 
script.setAttribute('src', 'http://fake.com?src=' + encodeURIComponent(document.location.href)); 
document.getElementsByTagName('head')[0].appendChild(script); 

XSSの脆弱性は、ここでこっそりする場所

script.src = 'http://fake.com?src=' + encodeURIComponent(document.location.href); 

私は表示されません。

答えて

8

「setAttributeメソッド」を使用する必要はありません。 "src"パラメータの奇妙な値に対して "fake.com"のサーバコードを "強化"しなければなりませんが、Javascriptがどのようなものであってもtrueになります。