我怎么能用这个dom xss?

时间:2013-05-02 03:57:42

标签: javascript xss

在这种情况下:

var count = $(count_el).data("count");  
$(target).html("hello"+count);

这是否意味着只有我们可以更改网址中的data('count')才能使用此dom xss? 比如<script>codes</script>等。

1 个答案:

答案 0 :(得分:0)

jQuery.data存储有关元素或对象本身的信息(如果它是首先从data-*标记中提取数据的元素)。

$el = $("<div data-count='1'></div>")
$el.data('count') // 1
$el.data()        // {"count":1}

但是,如果您担心XSS并且数据标记中嵌入了恶意HTML,则可以使用.text()代替.html()

$parent = $("<div></div>");
$child  = $("<div data-count='<script>alert(\"malicious code\");</script>'></div>");
count   = $child.data('count')
$parent.html(count) // this will run the embedded script
$parent.text(count) // this will not