开放重定向攻击的概念:那些通过请求(如查询字符串和表单数据)指定重定向URL的Web应用程序可能会被篡改,而把用户重定向到外部的恶意URL. 在执行重定向之前需先检查目标地址的有效性,可使用Url.IsLocalUrl()方法检测目标地址是否属于该站点,如果属于该站点,则继续执行重定向,如果不属于该站点,则做出相应的处理.…
       Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施.   威胁:跨站脚本攻击(XSS)        XSS 攻击在 Web安全威胁上排名第一,然而遗憾的是,导致 XSS 猖獗的主要原因是开发人员不熟悉这种攻击.可以使用 2 种方法实现 XSS: 被动注入(Passive Injection):通过用户将恶意的脚本命令输入到网站中,而这些网站又能接收"不干净"…
该方法不需要胡乱地编辑各个配置设置,而是利用了ASP.NET特性:Retail部署配置. 部署配置是服务器的machine.config文件(在%windir%\Microsoft.NET\Framework\<frameworkverision>\Config目录下)中的一个简单开关,用来标识ASP.NET是否在Retail部署模式下运行.该部署配置由于两个设置:retail要么是true要么是false. deployment/retail默认值是false; <system.web…
几乎所有的网站在开发过程中都在web.config文件中设置了特性<customErrors mode="off">. customErrors模式有3个可选的设置项: on:服务器开发的最安全选项,因为它总是隐藏错误提示信息. RemoteOnly:向大多数用户展示一般的错误提示信息,但向拥有服务器访问权限的用户展示完整的错误提示信息. Off:最容易受到攻击的选项,它向访问网站的每个用户展示详细的信息.详细的错误信息可能会暴露应用程序的内部结构. 设置customErr…
作为用户,为了防止cookie盗窃,可以在浏览器设置中选择"禁用cookie",但是这样做很可能导致在访问某个站点的时候弹出警告"该站点必须使用cookie". cookie主要有两种形式: 会话cookie: 存储在浏览器的内存中,在浏览器的每次请求中通过Http Header进行传递: 持久cookie: 存储在计算机硬盘文件中,在浏览器的每次请求中通过Http Header进行传递. 二者的权标在于,站点在会话结束时,会忘记会话cookie,但持久cookie…
XSS攻击(跨站脚本攻击)的概念: 用户通过网站页面的输入框植入自己的脚本代码,来获取额外的信息. XSS的实现方式: (1)通过用户将恶意的脚本命令输入到网站中,而这些网站又能够接收"不干净"用户输入,称为"被动注入",用户把"不干净"的内容输入到文本框中,并把这些内容保存到数据库中,以后再重新在页面上显示. (2)通过直接在页面上显示的用户输入,称为"主动注入".用户将"不干净"的内容输入到文本框中,这…
CSRF的概念可以分为两类:XSS和混淆代理. 混淆代理中的"代理"是指用户的浏览器.CSRF是基于浏览器的工作方式运作的.用户登录到一个站点后,用户的信息将会存储在cookie中(会话cookie或者持久cookie),通过这两种cookie中的任何一种,浏览器会告诉站点这是一个真是用户发出的请求. 使用XSS加混淆代理来实现对用户攻击的能力正式CSRF的核心. CSRF使得用户在不知情的情况在,使用自己真实的用户信息,去执行了黑客植入的恶意的脚本或者链接,造成非正常的操作. 阻止C…
模型绑定是ASP.NET MVC提供的强大功能,可遵照命名约定将输入元素映射到模型属性,从而极大地简化了处理用户输入的过程,然而,这也成为了攻击的另一种没接,给攻击者提供了一个填充模型属性的机会,右下时候填充的这些属性甚至都没有在输入表单中. 使用 [Bing] 特性防御重复提交攻击 1.可以使用Bing白名单来指定模型绑定的字段,比如 [Bing(Include="Name,Comment")] 也可以使用黑名单来排除禁止绑定的字段,比如 [Bind(Exclude="ID…
RSS全称Really Simple Syndication.一些更新频率较高的网站可以通过RSS让订阅者快速获取更新信息.RSS文档需遵守XML规范的,其中必需包含标题.链接.描述信息,还可以包含发布时间.最后更新时间等信息. 本文将介绍通过LINQ to XML生成XML文档,并在ASP.NET MVC Web应用程序中输出. 在生成RSS文档前,先简单了解一下RSS的结构.根节点rss下有channel节点,channel节点的一些子节点(title,link,description)包含…
一.搭建测试环境和项目 1.1.搭建JavaWeb测试项目 创建一个[H2DBTest]JavaWeb项目,找到H2数据库的jar文件,如下图所示: H2数据库就一个jar文件,这个Jar文件里面包含了使用JDBC方式连接H2数据库时使用的驱动类,将"h2-1.4.183.jar"加入到[H2DBTest]项目中,如下图所示: 1.2.开启H2数据库 进入到h2\bin目录,如下图所示: 确保H2数据库使用的8082端口没有被其他应用程序占用,正常启动之后输入"http://…