@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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 1602 c语言驱动程序,51单片机驱动LCD1602程序设计(C语言)很详细的教程

    1602 c语言驱动程序,51单片机驱动LCD1602程序设计(C语言)很详细的教程//********写指令函数************voidLCD_write_command(uchardat){LCD_DB=dat;LCD_RS=0;//指令LCD_RW=0;//写入LCD_E=1;//允许LCD_E=0;delay_n40us(1);//实践证明,我的LCD1602上,用for循环1次就能完成普通写指令。}//****************************…

    2022年7月16日
    14
  • c 获取UUID_c获取程序运行路径

    c 获取UUID_c获取程序运行路径计算机获取UUIDUUID是通用唯一识别码(UniversallyUniqueIdentifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名…

    2022年8月9日
    19
  • import java.io 是什么意思_Java IO 详解

    import java.io 是什么意思_Java IO 详解JavaIO详解初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!)这是javaio比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于i…

    2022年6月7日
    32
  • 常用分子生物学实验技术–整理「建议收藏」

    常用分子生物学实验技术–整理「建议收藏」常用的分子生物学实验技术:离心技术:是分离纯化蛋白质、酶、核酸(DNA、RNA)、细胞的最常用方法之一。电泳(electrophoresis):带电粒子在电场中向着与其所带电荷相反方向电极移动的

    2022年7月4日
    32
  • 解决IDEA插件安装慢、超时、不成功问题[通俗易懂]

    解决IDEA插件安装慢、超时、不成功问题[通俗易懂]解决IDEA插件安装慢、超时、不成功问题1.修改本地hosts文件,打开文件位置:Windows系统Hosts文件路径:C:\Windows\System32\drivers\etc\hosts用工具打开hosts文件2.打开国内插件的节点IP地址http://tool.chinaz.com/speedtest/plugins.jetbrains.com在检测结果中选择一个相对耗时少的IP地址,因为比较快然后按照第一步在hosts文件里加上即可,然后保存(需要以管理员身份)3.重

    2022年5月11日
    174
  • Pycharm精选插件

    Pycharm精选插件可能很多人都没有安装过什么pycharm插件,一个很重要的原因是默认的pycharm已经很强大了,已经有很多功能了,但是这不妨碍我们喜欢更强大的pycharm。下面介绍几款能够提高效率的插件MaterialThemeUI相信很多用过Sublime的同学,一装完pycharm的第一感觉就是:“怎么这么难看”,然后赶紧去找教程把主题换回Sublime主题。其实不用这么麻烦,只需要装了这个插…

    2022年6月24日
    22

发表回复

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

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