メールアドレスであるはずのユーザー入力をMailAdressクラスに解析するとします。
var mailString = Request.QueryString["mail"];
var mail = new MailAddress(mailString);
何らかの方法で MailAddress オブジェクトを後で出力した場合、クロスサイト スクリプティング攻撃を受ける可能性はありますか? たとえば、WebForms の Literal コントロールを介して:
litMessage.Text = "Your mail address is " + mail.Address;
文字列を解析してアドレスが有効な電子メール アドレスであることを確認しましたが、outpout をサニタイズする必要がありますか?
私が収集したメール アドレスの RFC はかなり複雑なので、.NET によって有効と見なされるメール アドレスにクロス サイト スクリプトを隠蔽できるかどうかはわかりません。
編集:
MSDNによると>
、<
電子メール アドレスでは角かっこを使用できます。
アドレスを山かっこで囲むと、アドレス パラメータに表示名と関連付けられた電子メール アドレスを含めることができます。例: 「トム スミス <tsmith@contoso.com>」
したがって、これが XSS 攻撃に十分かどうか、および/またはMailMessage
クラスが危険な部分を回避するために何かを行うかどうかという疑問が残ります。