#事故现场

  在一个asp.net 的项目中,前端通过ajax将富文本中的文字内容post到服务端的一个ashx中,在ashx中尝试读取参数值时,

结果报错:“从客户端中检测到有潜在危险的 Request.Form 值”

#事故分析

  由于在asp.net中,Request提交时出现有html代码字符串时,程序系统会认为其具有潜在危险的值。会报出“从客户端 中检测到有潜在危险的Request.Form值”这样的Error。

  而富文本中的内容是包含html代码的,所以...

#解决方案:

1、前端对富文本字符串进行encodeURI编码,服务端进行HttpUtility.UrlDecode解码操作;

  前端代码:

var str = '<p><span style="color: #00B0F0;"><em><strong>我想留在你的身边,</strong></em></span><br/></p><p><span style="color: #7030A0;"><strong><span style="text-decoration: underline;">深情款款多么可怜;</span></strong></span></p>';$(function() {$.ajax({type: "post",url: "TestHandle.ashx",data: { Title: 'jack', Content: encodeURI(str) },success: function (data) {$("#div").html(data);}});});

  后端代码:

    public void ProcessRequest(HttpContext context){string str = context.Request["content"];string content = HttpUtility.UrlDecode(str);context.Response.ContentType = "text/plain";context.Response.Write(content);}

  效果图:

2、前端不以form的方式提交,直接以json方式提交,服务端从request的body中读取数据,然后反序列化,得到信息;

  前端代码:

    var str = '<p><span style="color: #00B0F0;"><em><strong>我想留在你的身边,</strong></em></span><br/></p><p><span style="color: #7030A0;"><strong><span style="text-decoration: underline;">深情款款多么可怜;</span></strong></span></p>';var temp = { Title: 'jack', Content: str };$.ajax({type: "post",url: "TestHandle.ashx",contentType:"application/json;charset=utf-8",data: JSON.stringify(temp),success: function (data) {$("#div").html(data);}});

  后端代码:

    string bodyText;using (var bodyReader = new System.IO.StreamReader(context.Request.InputStream)){bodyText = bodyReader.ReadToEnd();}dynamic bodyObj = JsonConvert.DeserializeObject(bodyText);context.Response.ContentType = "text/plain";context.Response.Write(bodyObj.Content);

  效果图:

#其他场景的解决方案:

1、aspx页面,当前页面进行form提交

  打开当前.aspx页面,页头加上代码:validateRequest=”false”,如:

<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="false" CodeFile="default.aspx.cs" Inherits="default" %>

  该方法不推荐,还有一种修改web.config配置文件的方法,强烈不推荐,就不写在这里了;

2、在ASP.NET MVC中的解决方案

  1)、针对某个实体类的单个字段设置 [AllowHtml] ,这样提交的时候,系统就会放过该字段。

  2)、前端代码:

    var str = '<p><span style="color: #00B0F0;"><em><strong>我想留在你的身边,</strong></em></span><br/></p><p><span style="color: #7030A0;"><strong><span style="text-decoration: underline;">深情款款多么可怜;</span></strong></span></p>';$(function () {$.ajax({type: "post",url: "Home/Test",data: { Title: 'jack', Content: str },success: function (data) {$("#div").html(data.ok);}});});

  3)、后端代码:

    public class NewInfo{public string Title { get; set; }[AllowHtml]public string Content { get; set; }}

#写在最后

该文只是浅显的总结一下,其中涉及的xss方面,没有详细考虑,欢迎指正!

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
原文地址:https://www.cnblogs.com/willingtolove/p/10923895.html
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

从客户端中检测到有潜在危险的 Request.Form 值的解决方案汇总相关推荐

  1. “从客户端中检测到有潜在危险的 Request.Form 值“的解决方案汇总

    "从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总 参考文章: (1)"从客户端中检测到有潜在危险的 Request.Form 值"的 ...

  2. 勤于思考:从客户端中检测到有潜在危险的 Request.Form 值

    在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" . asp.net中的请求验证特性提供了某一等级的保护措施防止 ...

  3. 从客户端中检测到有潜在危险的request.form值

    从客户端中检测到有潜在危险的request.form值 今天被这个问题卡住了,在用到CKEDITOR的时候,老是报错显示输入字符存在潜在危险,之后百度了一下,试了这两种方法: 解决方案一:     在 ...

  4. MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...

    今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...

  5. 从客户端...中检测到有潜在危险的 Request.Form 值

    在.net中,Request时出现有HTML.Javascript等字符串时,系统会认为是危险值,运行显示"从客户端--中检测到有潜在危险的Request.Form值"这样的错. ...

  6. 使用Asp.net MVC 2.0 +.NET 4.0 出现 “从客户端 ... 中检测到有潜在危险的 Request.Form 值”错误的解决办法...

    我们在用Asp.net 开发 Web Form页面时,通常要提交包含Html内容的数据给后台程序代码处理时,会为页面设置 ValidateRequest="false" 属性,设置 ...

  7. 从客户端中检测到有潜在危险的 request.form值[解决方法]

    当页面编辑或运行提交时,出现"从客户端中检测到有潜在危险的request.form值"问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错误的几种解决方法: 问题原因:由于在as ...

  8. ASP.Net MVC从客户端中检测到有潜在危险的 Request.Form 值

    ASP.NET MVC4(Razor)从客户端中检测到有潜在危险的 Request.Form 值  "/"应用程序中的服务器错误. 从客户端(Content=" sdfd ...

  9. 从客户端中检测到有潜在危险的 Request.Form 值

    从客户端(xxxxxx)中检测到有潜在危险的 Request.Form 值.说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用程序安全的尝试,如跨站点的脚本 ...

最新文章

  1. 传孙正义领投滴滴无人车3亿美元新融资,此前软银宣布出售阿里股份等资产
  2. UA OPTI570 量子力学34 Harmonic Perturbation简介
  3. js(Dom+Bom)第四天(1)
  4. 【Linux】计划任务管理crontab、at
  5. Ubuntu中的zip / unzip 和 rar / unrar 命令:压缩 / 解压 zip 和 rar 文件
  6. JanusGraph配置参考大全
  7. vscode如何配置java环境_VSCode 配置Java环境
  8. 如何在win7下安装XP系统?
  9. 常识介绍---什么是rss
  10. 中国科学院计算机研究所调剂,给计算机复试的jr们一点建议,以及欢迎调剂中科院计算机相关研究所...
  11. 《天天数学》连载55:二月二十四日
  12. linux 可视化分区,可视化linux块设备的工具(分区,LVM PV,LV,mdadm设备……)
  13. 应用在电磁炉触控面板中的电容式触摸芯片
  14. 我的世界1.12.2java下载_我的世界java版整合包
  15. 在内部局域网内搭建HTTPs
  16. Initialization error Could not load .../oci.dll
  17. 用STM32F103单片机控制电调制动无刷电机
  18. Gating mechanisms
  19. LetsEncrypt与Certbot之certbot命令介绍
  20. 推荐自媒体和文案相关神器(短视频与公众号)

热门文章

  1. 清理数据 python_在python中使用熊猫清理数据
  2. Python 猜拳游戏
  3. OpenStack 入门体验
  4. ESD静电防范常见问题及解决方案
  5. SOLIDWORKS钣金设计基础命令
  6. 震惊!一段代码4个错!竟然全是单词拼写错误
  7. [归纳]强化学习导论 - 第七章:n-step自举(Bootstrapping)
  8. MDK stm32软件仿真调试
  9. P3594 [POI2015]WIL-Wilcze doły
  10. rsa asia 2015 ppt