【问题标题】:How to prevent "A potentially dangerous Request.Form" in a request如何防止请求中出现“潜在危险的 Request.Form”
【发布时间】:2012-04-03 20:29:39
【问题描述】:

我在我的页面中添加了一个FreeTextBox 控件,它允许用户插入 HTML 标记。好吧,当我发送到服务器时,我收到以下错误:

从客户端检测到有潜在危险的 Request.Form 值 (GestisciPagine1_txtTestoPagina="...t homepage<br><br>")。

我需要更改哪个选项来避免这种情况?我只想更改此控件。有可能吗?

【问题讨论】:

标签: c# .net html security


【解决方案1】:

我需要更改哪个选项才能避免此控件仅针对此控件?

您不能针对每个控件执行此操作。你需要在page level or for the entire application

<%@ Page Title="Home Page" Language="C#" ValidateRequest="false" %>

【讨论】:

  • 这意味着我需要转义/编码从该页面获得的所有数据?还是 .NET 也这样做?
  • @markzzz,如果您打算在页面上显示它,则需要对其进行 HTML 编码。就这样。在服务器上,您可以按原样将其存储在 SQL 数据库中,而无需担心任何事情(当然,假设您正在使用参数化查询,但是由于如果您正在执行任何普通的 ADO.NET,则应该始终使用参数化查询,所以它不应该是任何问题)。
  • 我使用存储过程或 LINQ to SQL :)。但是,在打印回页面时,.NET 也应该自动进行 HTML 编码,对吧?
  • 那么,为什么要控制“ValidateRequest”?为了防止无论如何都要检查的东西? :O
  • 默认情况下,ASP.NET 不允许发布此类字符。我认为这是为了警告开发人员在将它们显示回页面时必须执行某些附加步骤(HTML 编码)。想象一下,也不例外。不知道他们必须对他们进行 HTML 编码这一事实的人不会这样做并让他们的网站被 XSSesed。另一方面,抛出异常 => 这让开发人员感到害怕,他们提出问题并弄清楚事情。
猜你喜欢
  • 2011-11-09
  • 2011-07-23
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 2011-03-30
相关资源
最近更新 更多