在第二次单击时从客户端检测到具有潜在危险的 Request.Form 值

本文关键字:危险 Request Form 单击 第二次 检测 客户端 | 更新日期: 2023-09-27 18:36:06

当我在页面最初加载后执行以下代码时,我没有收到错误,但是当我更改下拉列表的值并再次执行它时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();

在第二次单击时从客户端检测到具有潜在危险的 Request.Form 值

假设 ddlMode 将自动回发设置为 true。你最好做

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

这将正确编码诸如左右尖括号之类的内容,这些尖括号将其解释为恶意标记。