web-dev-qa-db-ja.com

リンク内のjavaスクリプトhref = "javascript:alert(1)"

私がテストしているアプリでは、ドメイン名の入力と保存を許可しており、ブラウザーで印刷すると、ドメインの先頭に「http://」が連結されます。したがって、「google.com」と入力すると、次のようなリンクが作成されます。

<a href="http://google.com"> google </a>

したがって、「javascript:alert(1)」と入力すると、リンクは次のようになります。

<a href="http://javascript:alert(1)"> google </a>

最初に「http://」を連結しない場合、リンクをクリックするとそのJavaScriptが実行されます。それで、XSSは常に「http://」を最初に連結するため、XSSから100%安全であると確信できますか?

ありがとう! 注:引用符を入力すると、\ u003caとしてエンコードされます

1
Samuel

この方法はXSSから安全だとは思いません。このタイプの脆弱性は Reflected XSS の典型的なケースのように聞こえます。 hrefタグをいくつかの_"_でエスケープする場合は、XSSコードを入力できます。入力フィールドにfoo.at"><script>alert(81)</script>"page=1と入力すると、リンクは次のようになります->

_<a href="http://foo.at"><script>alert(81)</script>"page=1">google </a>
_

すべての特殊文字を他の形式に変換するWebサイトのフィルターを使用することをお勧めします。 PHPの htmlspecialchars のように。

1
CDRohling