web-dev-qa-db-ja.com

location.pathnameはXSSにつながりますか?

_<div id="cat"></div>
<script>
$("#cat").html(location.pathname);
</script>
_

私はその例はうまくいくと思いますが、とにかく、location.pathnameが有効なページでなければならない場合、これを利用できますか?

編集:私は主に、ユーザーが自分のパス名を構成できない場合について話します(つまり、/test/<script>alert(0)</script>)。

2
Michael Blake

はい。スクリプトタグを含むパスがサーバー上でこのコードを含むページに解決された場合(たとえば、書き換えルールを介して)、スクリプトがページにレンダリングされる可能性があります。これは、スクリプトタグを追加するクライアント側コードになるため、DOMベースのXSSになります。

例えばhttps://www.example.com/foo/bar/<script>alert('foo')</script>

2
SilverlightFox