几个月前通过Veracode对代码进行动态和静态安全扫描,扫出了数以千计的安全bug,基本上都是top 10的,安全漏洞. 其中CWE80,CWE601数量最多.具体CWE的定义可参考http://cwe.mitre.org/ 。

正好手上有Beginning Asp.Net Security这本书,所以就看了看。所有的安全漏洞都源于非法用户的输入,所以任何应用程序或业务系统都需要在一定范围内设置安全边界。

在安全边界以外,接受任何用户输入都应该认为是不安全的,而黑客也是通过用户变量的进行代入达到攻击的目的,所以在接受用户输入的时候需要加入校验。在Asp.Net中对于Request默认是有验证的,在发送任何发送Request的http runtime时候都会验证请求中的form内容,如果request中有危险字符

我们可以得到如图黄页错误。我们可以通过下面设置取消在http runtime的验证

•<%@ Page validateRequest=“false” %>
•<system.web> <pages validateRequest="false" /> </system.web>
在mvc里面可以 用下面的配置:
•<httpRuntime requestValidationMode="2.0" />
•[AllowHtml]
•[ValidateInput(false)]
 
取消了http runtime 的request 验证,那么后台程序就可以接收到用户的所有输入了,一旦用户的输入包括了javascript,sql就有可能被注入攻击,所以需要对用户的输入进行处理了(encode).
 
Anti-Cross Site Scripting Library
Anti-Cross Site Scripting Library是MS的开源项目,它针对CSS,Javascript,html,url等标签中的特殊危险字符进行编码,以达到防范攻击的目的
 
 

Beginning Asp.Net Security 读书笔记-----XSS的更多相关文章

  1. ASP.NET Core 2 High Performance 目录和读书笔记

    ASP.NET Core 2 High Performance 大概的翻看了一下这本书,这本C# 7 and .NET Core 2.0 High Performance内容要好很多,这里先放出对应目 ...

  2. 《ASP.NET Core In Action》读书笔记系列,这是一个手把手的从零开始的教学系列目录

    最近打算系统学习一下asp.net  core ,苦于没有好的中文书藉,只好找来一本英文的 <ASP.NET Core In Action>学习.我和多数人一样,学习英文会明显慢于中文.希 ...

  3. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  4. WPF,Silverlight与XAML读书笔记第四十八 - Silverlight网络与通讯

    说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 这一部分我们重点讨论下Silverlight ...

  5. 《C#图解教程》读书笔记之一:C#和.NET框架

    本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.在.NET之前的编程世界 C#语言是在微软公司的.NET框架上开发程序而设计的,首先作者给大家纠正了一下C# ...

  6. [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析

    前言 上次在公司开会时有同事分享windebug的知识, 拿的是string字符串Concat拼接 然后用while(true){}死循环的Demo来讲解.其中有提及string操作大量字符串效率低下 ...

  7. PHP读书笔记(1)-PHP语法结构与变量

    一 .php基础语法 1.php语法结构 标准风格:<?php code; ?>.PHP每句代码用;(分号)结尾.<---就用这个,其他的看看就可以了 短风格:<? code; ...

  8. 认识CLR [《CLR via C#》读书笔记]

    认识CLR [<CLR via C#>读书笔记] <CLR via C#>读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runti ...

  9. CLR基础之一---认识CLR [《CLR via C#》读书笔记]

    <CLR via C#>读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称.这 ...

随机推荐

  1. Unix socket的准备(一)

    套接字地址结构 套接字编程中,五元组是广为人知的. (host_ip, host_port, target_ip, target_port, protocol). 其中 ip 和 port 就是由套接 ...

  2. WPF 实现指定UI控件截图

    using System.Windows.Media.Imaging; using System.IO; private void SaveToImage(FrameworkElement ui, s ...

  3. C# 窗体常用API函数 应用程序窗体查找

    常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名 ...

  4. maven+testng+reportng的pom设置

    在pom.xml 加入: <dependency> <groupId>org.testng</groupId> <artifactId>testng&l ...

  5. artZoom 图片可放大旋转

    资源下载:http://www.sucaijiayuan.com/Js/TuPianDaiMa/774.html 第一步:引入文件 <link rel="stylesheet" ...

  6. filebeat 笔记

    认识Beats Beats是用于单用途数据托运人的平台.它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch. (画外音:通俗地理解,就是采集数据 ...

  7. Ubuntu下用devstack单节点部署Openstack

    一.实验环境 本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版. 宿主机:win10 1803  8G内存 ...

  8. 2015年传智播客JavaEE 第168期就业班视频教程03-ERP简介(2)

    资源管理这块的东西大家基本上能够猜个差不多了.下面描述描述计划.计划这个东西把企业资源这个东西提升了不只十倍二十倍了.ERP的核心是计划,但是这次我们做是不做计划的.今年我们是一个生产型企业,我们要开 ...

  9. input实时监听控制输入框的输入内容和长度,并进行提示和反馈

    一.前言 在MVVM模式下,有个双向数据绑定(data-binding)的优势,可以通过viewmodel实时的监听用户操作,也可以将model的改动实时的反馈到界面上. 那么,在传统的js操控DOM ...

  10. mysql 一次性插入上万条数据测试专用

    无聊期间 记录下 mysql 一次性插入上万条数据 测试的时候可以用 首先 创建一个表 t3 create table t3(id int)ENGINE = MyISAM; \d //    表示吧m ...