@Page validateRequest=false「建议收藏」

@Page validateRequest=false「建议收藏」validateRequest=false是禁用了请求验证,同时他也就把一些安全的意识给去掉了,比如跨服务器脚本攻击(xss)。(建议不要这样做)想要截获错误的信息给用户一个好的体验。1protectedvoidPage_Error(objectsender,EventArgse)2{3Exceptionex=Server.GetLastE…

大家好,又见面了,我是你们的朋友全栈君。

validateRequest=false 是禁用了请求验证,同时他也就把一些安全的意识给去掉了,比如跨服务器脚本攻击(xss)。(建议不要这样做)
 
想要截获错误的信息给用户一个好的体验。
@Page validateRequest=false「建议收藏」
@Page validateRequest=false「建议收藏」

1 protected void Page_Error(object sender, EventArgs e)
2 {
3 Exception ex = Server.GetLastError();
4 if (ex is HttpRequestValidationException)
5 {
6 Response.Write("请您输入合法字符串。");
7 Server.ClearError(); // 如果不ClearError()这个异常会继续传到Application_Error()。
8 }
9 }

Application_Error()

或者直接到 Application_Error() 里面去处理错误的回应 。
 

关于存在Rich Text Editor的页面应该如何处理?

  如果页面有富文本编辑器的控件的,那么必然会导致有类的HTML标签提交回来。在这种情况下,我们不得不将validateRequest=”false”。那么安全性怎么处理?如何在这种情况下最大限度的预防跨站脚本攻击呢?

  根据微软的建议,我们应该采取安全上称为“默认禁止,显式允许”的策略。

  首先,我们将输入字符串用 HttpUtility.HtmlEncode()来编码,将其中的HTML标签彻底禁止。

  然后,我们再对我们所感兴趣的、并且是安全标签,通过Replace()进行替换。比如,我们希望有””标签,那么我们就将””显式的替换回””。

  示例代码如下

  

@Page validateRequest=false「建议收藏」
@Page validateRequest=false「建议收藏」

 1 以下是引用片段:
 2 void submitBtn_Click(object sender, EventArgs e) 
 3 ...{ 
 4 // 将输入字符串编码,这样所有的HTML标签都失效了。 
 5 StringBuilder sb = new StringBuilder( 
 6 HttpUtility.HtmlEncode(htmlInputTxt.Text)); 
 7 // 然后我们选择性的允许<b> 和 <i> 
 8 sb.Replace("&lt;b&gt;", "<b>"); 
 9 sb.Replace("&lt;/b&gt;", ""); 
10 sb.Replace("&lt;i&gt;", "<i>"); 
11 sb.Replace("&lt;/i&gt;", ""); 
12 Response.Write(sb.ToString()); 
13 }

View Code

 

转载于:https://www.cnblogs.com/lihui1987/p/3158164.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132778.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ecshop彻底去版权把信息修改成自己的全教程

    ecshop彻底去版权把信息修改成自己的全教程前台部分:一、去掉头部title部分的ECSHOP演示站-Poweredbyecshop1、问题:“ECSHOP演示站”方法:在后台商店设置–商店标题修改2、问题:“Poweredby

    2022年7月2日
  • RNN BPTT算法推导

    RNN BPTT算法推导BPTT(沿时反向传播算法)基本原理与BP算法一样,包含三个步骤:前向计算每个神经元的输出值反向计算每个神经元的误差项δjδ_jδj​,它是误差函数E对神经元j的加权输入netjnet_jnetj​的偏导数计算每个权重的梯度最后再用随机梯度下降算法更新权重循环曾如图所示:1.1前向计算循环层的前向计算:隐层:st=f(Uxt+Wst−1)s_t=f(Ux_t+Ws_{t-1})…

    2022年6月23日
  • OkGo使用缓存(苹果清理缓存)

    添加依赖:implementation’com.lzy.net:okgo:3.0.4’添加网络权限:&lt;uses-permissionandroid:name="android.permission.INTERNET"/&gt;准备网络数据:使用:OkGo.getInstance().init(getApplication()…

    2022年4月12日
  • 自学silverlight 5.0

    这是一个silverlight游戏:http://keleyi.com/keleyi/phtml/silverlight/接了个单子,非要用Silverlight5来作一个项目,之前从来没接触过这

    2021年12月23日
  • 双机热备解决方案(mysql双机热备方案)

    数据库双机热备有两种典型的方式,一种是比较标准的,两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网SAN),并且安装双机软件,实现双机热备,称为共享方式。另一种方式是通过纯软件的方式,一般称为镜像的方式…

    2022年4月17日
  • 如何设置网址跳转_怎么让域名跳转到另一个域名

    如何设置网址跳转_怎么让域名跳转到另一个域名一、什么是URL转发?URL(UniformResourceLocator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成:Internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http://”表示WWW服务器,“ftp://”表示FTP服务器,“gopher://”表示Gopher服务器,而“new:”表示Newgroup新闻组。服务器地址…

    2022年10月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号