HTML タグを禁止した後の (PHP) マークダウンの主な XSS 脆弱性は、次のようなリンクを許可しているようです。
[foo](javascript:alert('xss'))
に変わります
<a href="javascript:alert('xss')">foo</a>
同じことが にも当てはまります<img src="">
。
私は現在、サイトで非常に基本的な Q&A セクションを開発しており、質問と回答にマークダウンを使用しています。http://
このサイトでのリンクの正当な使用は、またはリンクのみであると自信を持って言えhttps://
ます。
リンクを処理するために使用する正規表現マークダウンを変更し、文字http
で始まる URL のみを許可した場合、XSS 攻撃を防ぐことができますか?
PSこれは私の現在の質問の一部ではありませんが、問題のイライラするほど複雑な正規表現を変更する方法を親切な魂が教えてくれたら、とても助かります。
編集:私はすでにPHP Markdown XSS Sanitizerを読んでおり、この質問をしている唯一の理由は、別のアプローチを検討しているためです。私の質問は、「 XSS を防ぐためにマークダウン出力をサニタイズする方法」ではなく、「このアプローチは XSS 攻撃を防ぐことができますか?」です。そのため、これは複製ではなく、代替です。また、この質問が賛成票を獲得したという事実は、以前の質問が存在するにもかかわらず、私と同じことを疑問に思っている人が少なくとも何人かいることを示していますか?