Javascript 注入攻击

Javascript 注入攻击?

什么是javascript注入攻击呢?其实比较其他的攻击,javascript可能相对简单一些。

每当接受用户输入的内容并重新显示这些内容的时候,网站就容易受到这种攻击。

用asp.net mvc来个简单的例子:

[ValidateInput(false)]
    public class HomeController : Controller
    {
        public string Index(string genre)
        {
            //将genre参数原封不动的返回
            string result = genre;
            return result;
        }

        public ActionResult About()
        {
            return View();
        }
    }
这是controller的代码, 一个url请求经过route解析之后,会到对应的action中。

对于这个index方法,不需要call view层面的代码,直接会在页面上将genre这个参数以字符串的方式显示出来。

如果对于正常的url 比如http://localhost:1796/home/index?genre=abc ,那么页面就会显示abc

但是javascript攻击的话,比如url是http://localhost:1796/home/index?genre=

这里还分两种情况

1,Chrome浏览器下的情况:

表面现象是什么都没有返回,但是打开调试器,会发现有一个页面错误

Refused to execute a JavaScript script. Source code of script found within request.

2. 来看看IE的情况:

尼玛,直接就跳转到baidu页面了, IE,你果然牛X。


其他的浏览器没有实验。

个人判断chrome浏览器的行为是这样的,

1.从server端返回的结果是

2.浏览器说,我cao,这是一段js代码,我是执行还是不执行呢?

3.不着急,先看看刚才的request是什么, http://localhost:1796/home/index?genre=

4.chrome浏览器:“尼玛,这是典型的javascript攻击啊,因为匹配reuqest和返回的js代码是一样的”

5.妈的,老子拒绝执行!

这样来意淫一下chrome的执行,觉得chrome还是很聪明的。


PS:实际上asp.net mvc框架还是比较优秀的。

细心的你可能会发现controller的代码里面多了一行[ValidateInput(false)]

目的是屏蔽mvc的校验querystring这块,如果url里面包含

你可能感兴趣的:(C#)