1

ページが最初にロードされた後に次のコードを実行すると、エラーは発生しませんが、ドロップダウンの値を変更しddlModeて再度実行すると、エラーが発生します。

A potentially dangerous Request.Form value was detected from the client (txtXML="<Root...").

私は SecurityElement.Escape を実行しましたが、これで修正されましたが、エスケープされた XML が表示され、このように表示したくありません。ボタンクリックイベント内の関連コードは次のとおりです。

XElement xml = new XElement("Root",
                    new XAttribute("T", "Test"),
                    new XAttribute("S", ddlMode.SelectedValue),
                    new XAttribute("E", Guid.NewGuid().ToString()),
                    new XAttribute("F", DateTime.Now.ToLongTimeString()),
                    new XElement("HRS",
                        new XElement("HR",
                            new XElement("RP"),
                            new XElement("RSS",
                                new XElement("RS",
                                    new XElement("PN",
                                        new XElement("GV", txtFirstName.Text),
                                        new XElement("SN", txtLastName.Text)))))));


            txtXML.Text = xml.ToString();
4

1 に答える 1

0

ddlMode の AutoPostback が true に設定されていると仮定します。したほうがいいよ

txtXML.Text = HttpUtility.HtmlEncode(xml.ToString());

これにより、悪意のあるタグとして解釈される左右の山括弧などを正しくエンコードします。

于 2012-06-27T01:10:41.217 に答える