Ken的杂谈
  • Ken的杂谈 (current)
  • 关于
  • 杂谈
    Java Spring Spring Boot Spring Cloud MyBatis C# .NET Core .NET ASP.NET Core ASP.NET ClassLibrary Mono 数据库 MySQL SQL Server 网络 缓存 Web Linux CentOS Ubuntu macOS Windows openEuler Nginx ServiceStack JS/JQ 正则 工具 IDE Grafana Exceptions CI/CD Solution 微服务 Arch Docker 杂谈
  • 系列
    Java 快速入门系列教程 Spring Boot 入门教程 Spring Boot 2.x 入门教程 Spring Cloud 入门教程 .NET Core 快速入门教程 ASP.NET Core 2.1 入门教程 CentOS 7 快速上手教程 Ubuntu快速上手入门教程 Hyper-V基础教程 Docker入门教程
  • GitHub

asp.net表单提交-从客户端检测到潜在威胁解决办法

ASP.NET .NET @ 2013-01-09 22:21:21 · 阅读:(5934)

无论是asp.net WebForm开发还是asp.net MVC开发,如果从客户端提交到服务器端中的数据包含html标记。

默认.net framework在表单提交过程中会对提交的内容进行检测,就会报“从客户端检测到有潜在危险的Request.Form值”提示。

虽然这是出于安全性考虑,但是在需要提交文章等其他信息的时候,Html标记是必须的。

如果要解决这个问有如下几个办法:

一:修改配置文件(WebForm 、MVC通用)

<?xml version="1.0" ?>
<configuration>
<system.web>
<!--为pages节点增加属性-->
<pages validaterequest="false"/>
<!--增加验证模式描述(VS2010+)-->
<httpRuntime requestValidationMode="2.0" />
</system.web>
</configuration>

二:修改.aspx页面page节点(WebForm-推荐)

<%@ Page ValidateRequest="false"  %>

三:修改Action描述(MVC-推荐)

[ValidateInput(false)]//关闭输入验证
public ActionResult Add()
{
    return View();
}

其实,通过这些方式关闭了验证之后,服务器端是有被XSS跨站脚本攻击的危险的。

applet body embed frame script frameset html iframe
img style layer link ilayer meta object

这些html标签提交到服务器端之后都是有被攻击的危险的

所以关闭了验证之后,一定要在服务器端对提交的内容进行验证。这也是推荐使用方法二、方法三的原因

毕竟使用方法一的时候,每当有客户端输入内容的时候,服务器端就要进行危险标签的处理。

反而不如方法二、方法三方便。


Ken的杂谈

本文由 ken.io 创作,采用CC BY 3.0 CN协议 进行许可。 可自由转载、引用、甚至修改,但需署名作者且注明出处。

ASP.NET .NET

随笔目录


    © Copyright 2012-2025 Ken的杂谈

    豫ICP备10025012号

    ASP.NET Core(6.0) on Linux