Web安全有关

简介

  那多少个通过请求(如查询字符串和表单数据)钦赐重定向UENCOREL的Web程序只怕会被歪曲,而把用户重定向到表面包车型地铁恶意UEscortL。这种歪曲就被称呼开采重定向攻击。

气象深入分析

 
葡萄娱乐场 1

  即使有叁个规范网址http://nerddinner.com/,还有一个恶意网站或钓鱼网站http://nerddiner.com/(注意:这里少了个n)。

  一天,小白收到了外人发的链接:http://nerddinner.com/Account/LogOn?returnUrl=http://nerddiner.com。

  1.
开垦链接后进入了登入分界面,小白输入了和睦的帐号名密码进行登入。

  2. 记名成功后重定向到了恶意网址。

  3. 恶意网址是一个克隆正规网址的报到页面,并在上边提醒用户名或密码错误。

  4. 小白依据提醒重新输入了帐号密码新闻。

  5.
黑心网址保存了客户的用户名密码,然后重定向会正规网址。

葡萄娱乐场,  6.
小白继续日日常规的操作。

 

谨防开放重定向

  防止开辟重定向只需求看清重定向的链接是地方的链接可能是法定的链接就可以。

  1.
万一登陆链接和站点别的页面都在同贰个域名,在ASP.MVC中能够用Url.IsLocalUrl(string
url)来推断。

  2.
假若登陆链接和站点别的页面不在同八个域名,如单点登入,则须求本人去落到实处决断的逻辑。
 
核心代码

 1        [HttpPost]
 2         public ActionResult LogOn(LogOnModel model, string returnUrl)
 3         {
 4             //Your logon logic here.
 5             FormsAuthentication.SetAuthCookie(model.UserName, false);
 6            //Comment out this code will cause open redirection 
 7             if (!string.IsNullOrEmpty(returnUrl)&& Url.IsLocalUrl(returnUrl))
 8             {
 9                 return Redirect(returnUrl);
10             }
11             return RedirectToAction("Index", "Home");
12         }

 

联想到XSS

  1.
黑心用户在行业内部网址下挂了跳转到恶意网址的台本。
  2.
普通用户访问到含恶意脚本的页面会跳转到恶意网址。
  3.
恶心网站是贰个仿制正规网址的登陆页面,并在上边提示须要再度登入。
  4.
小白根据提醒重新输入了帐号密码新闻。
  5.
黑心网址保存了客户的用户名密码,然后重定向会正规网址。
 
  注:这种措施每一次访问含恶意脚本的页面都会跳转到恶意网址(提醒重新登陆),而盛开重定向只会提示用户名密码错误一回,相对来说,开放重定向的无感知效果要好一些。  

   葡萄娱乐场 2

源码下载

  假如大家想尝尝开放重定向的意义,能够去下载代码,把判别本链接的语句Url.IsLocalUrl(returnUrl)注释掉,然后在报到页面加上想要跳转到的页面,如http://xxx.com/Account/LogOn?ReturnUrl=http://www.baidu.com。

  下载地址:https://github.com/ErikXu/OpenRedirection

 

 作品转发自:http://www.cnblogs.com/Erik_Xu/p/5497479.html