javascript - 从客户端检测到潜在危险的 Request.QueryString 值(Html ="<!DOCTYPE html PUBLI...")asp.net mvc

标签 javascript asp.net-mvc

我正在使用 iTextSharp 来使用函数并将 HTML 转换为 PDF,以从图标执行此操作我在 Controller 中调用函数,发送 html 字符串作为参数,这样做时出现错误,我想知道是否有人知道我该如何解决它。

Error

从客户端检测到潜在危险的 Request.QueryString 值 (Html="<!DOCTYPE html PUBLI...")

View

@foreach (var item in Model.RecordEntries) {

 <a target="_blank" validateRequest="false" rel="noopener noreferrer" href="@Url.Action("Export", "Home" , new { item.Html })"> <i class="fas fa-eye"> </i></a>
}

Controller


      [HttpPost]
      [ValidateInput(false)]
      public FileResult Export(string GridHtml)
      {
          using (MemoryStream stream = new System.IO.MemoryStream())
          {
            StringReader sr = new StringReader(GridHtml);
            Document pdfDoc = new Document(iTextSharp.text.PageSize.A4, 10f, 10f, 100f, 0f);
            PdfWriter writer = PdfWriter.GetInstance(pdfDoc, stream);
            pdfDoc.Open();
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr);
            pdfDoc.Close();
            return File(stream.ToArray(), "application/pdf", "Grid.pdf");
            }
        }

最佳答案

您可以通过对输入数据进行编码来禁用请求验证。尝试按以下方式进行:

string encodedString = HttpUtility.UrlEncode(Request.QueryString["name"]);

或者作为替代选项,您可以在 web.config 中添加重置 validateRequest 参数:

<configuration>
  <system.web>
    <httpRuntime requestValidationMode="2.0" 
      validateRequest="false"/>
  </system.web>
</configuration>

但是,这种方法将使您的应用程序更容易受到不同类型的攻击。<​​/p>

关于javascript - 从客户端检测到潜在危险的 Request.QueryString 值(Html ="&lt;!DOCTYPE html PUBLI...")asp.net mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76115660/

相关文章:

Javascript 倒计时在页面刷新时持续存在

javascript - 基本 Vue 帮助 : Accessing JS object values in component

c# - ASP.Net vNext App_Data 文件夹

asp.net-mvc - 创建 razor 自定义 View 引擎后 _ViewStart 停止工作

javascript提示输入

javascript - 禁用调整固定 flex 的大小

javascript - 如何在 React 中停止进一步处理事件

asp.net-mvc - Razor Html.ActionLink 参数

asp.net - 为什么ASP.NET Identity中的注销使用POST而不是GET?

asp.net-mvc - ASP.MVC 3 可以在站点根目录中运行并允许其他 ASP.Net 应用程序在子文件夹中运行吗?