<th id="v9g6b"><track id="v9g6b"></track></th>

  • <em id="v9g6b"><acronym id="v9g6b"></acronym></em>
    <progress id="v9g6b"><pre id="v9g6b"></pre></progress>
    <tbody id="v9g6b"></tbody>
    <button id="v9g6b"><acronym id="v9g6b"></acronym></button>
    <rp id="v9g6b"><ruby id="v9g6b"></ruby></rp>

        <dd id="v9g6b"></dd>

        <em id="v9g6b"></em>

          Web安全问题及防范规范之XSS跨站脚本攻击|B/S开发框架

          Web站点为什么会遭受攻击?是为了恶作剧?损害企业名誉?免费浏览收费内容?盗窃用户隐私信息?获取用户账号谋取私利?总之攻击方式层出不穷,作为B/S开发框架来说,帮助开发者做好解决安全问题也是刻不容缓的,本篇文章来告诉大家怎么防范非法SQL注入。

          xss攻击

          适用范围

          Web中 带有显式URL跳转 或 带有存储型文本框的页面。

          攻击原理

          1、非持久型分为反射型XSSURL跳转;

          反射型XSS恶意代码不保留在服务器上,而是通过其他形式实时通过服务器反射给普通用户;

          URL跳转,参数型跨站脚本,主要用于将恶意脚本附加到URL地址的参数中,然后诱使用户访问该网址,当受害者单击这些专门设计的链接时,恶意代码会直接在受害者主机上的浏览器中执行。它的特点是只在用户单击时触发,而且只执行一次,非持久化,所以称为反射型跨站脚本。

          例子:URL跳转

          http://www.hstjp.com:883/Login.aspx?ReturnUrl=http%3A%2F%2Fwww.hstgzpt.com%2F  URL跳转,将参数ReturnUrl的值替换成钓鱼网站的地址。

          反射: <input type="text" name="address1" value="value1from"> value1from 是来自用户的输入,如果用户不是输入value1from,

          而是输入"/><script>alert(document.cookie)</script><!- 那么就会变成<input type="text" name="address1"value=""/><script>alert(document.cookie)

          </script><!- "> 嵌入的JavaScript代码将会被执行

          2、持久型XSS 也叫存储型跨站脚本,比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全。此类XSS不需要用户单击特定的URL就能执行跨站脚本,攻击者事先将恶意代码上传或存储到漏洞服务器中,只要受害者浏览该页面就会执行恶意脚本。

          例子:用户通过文本框输入脚本,后台未进行过滤或转义,脚本直接保存,下一个用户访问该地址时用户通过某种方式获取用户的cookie信息。


          解决方案

          应用程序处理

          1、URL跳转:

          云微开发平台策略1:指定域名跳转,后台进行判断,非该域名不予跳转; 

          System.Uri u = new System.Uri(strReturnUrl);
          if (u.Host.IndexOf(".baidu.com") == -1)
          {
                  strReturnUrl = @"http://www.baidu.com";
          }

          策略2

          参照百度,对URL进行加密传输。

          2、反射型与持久型

          反射型与持久型过滤方式一至

          策略1:过滤,对html标签及js脚本进行过滤,这种方式由于标签量较大,实标应用中不算可取。

          策略2 转义:

          String title = request.getParameter(“title”);
          String id = request.getParameter(“id”);
          <span> <%=xss.HtmlEncoder(title,”HTML”)%></span>
          <span> <%=xss.HtmlEncoder(contect,”HTML”)%></span>


          3、B/S开发框架后台过滤

          public static string HtmlEncode(string Encode)
          {
              // 将输入字符串编码,这样所有的HTML标签都失效了。   
              StringBuilder sbStr = new StringBuilder(HttpUtility.HtmlEncode(Encode));
              // 选择性的允许<b> 和 <i>   
              sbStr.Replace("&lt;b&gt;", "<b>");
              sbStr.Replace("&lt;/b&gt;", "</b>");
              sbStr.Replace("&lt;i&gt;", "<i>");
              sbStr.Replace("&lt;/i&gt;", "</i>");
              return sbStr.ToString();
          }
          public static string WipeScript(string html)
          {
              System.Text.RegularExpressions.Regex regex1 = new 
              System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex2 = new 
              System.Text.RegularExpressions.Regex(@" href *= *[\s\S]*script *:", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex3 = new 
              System.Text.RegularExpressions.Regex(@" on[\s\S]*=", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex4 = new 
              System.Text.RegularExpressions.Regex(@"<iframe[\s\S]+</iframe *>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex5 = new 
              System.Text.RegularExpressions.Regex(@"<frameset[\s\S]+</frameset *>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex6 = new 
              System.Text.RegularExpressions.Regex(@"<input[\s\S]+</input *>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex7 = new 
              System.Text.RegularExpressions.Regex(@"<style[\s\S]+</style *>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex8 = new 
              System.Text.RegularExpressions.Regex(@"<link[\s\S]+</link *>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex9 = new 
              System.Text.RegularExpressions.Regex(@"<(input|link|iframe|frameset|frame)[^>]*/>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              System.Text.RegularExpressions.Regex regex10 = new 
              System.Text.RegularExpressions.Regex(@"<\\/*[^<>]*>", 
              System.Text.RegularExpressions.RegexOptions.IgnoreCase);
              html = regex1.Replace(html, ""); //过滤<script></script>标记 
              html = regex2.Replace(html, ""); //过滤href=javascript: (<a>) 属性 
              html = regex3.Replace(html, ""); //过滤其它控件的on...事件 
              html = regex4.Replace(html, ""); //过滤iframe 
              html = regex5.Replace(html, ""); //过滤frameset 
              html = regex6.Replace(html, ""); //过滤input
              html = regex7.Replace(html, ""); //过滤Style
              html = regex8.Replace(html, ""); //过滤link
              html = regex9.Replace(html, ""); //过滤通用标签名
              html = regex10.Replace(html, ""); //过滤尖括号星号等
              return html;
          }

          管理处理

          物理处理

          标签: B/S开发框架Web安全问题及防范规范标签

          网站&系统开发技术学习交流群:463167176

          本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
          转载请注明:文章转载自:华晨软件-云微开发平台 ? Web安全问题及防范规范之XSS跨站脚本攻击
          本文标题:Web安全问题及防范规范之XSS跨站脚本攻击
          本文地址:http://www.sajuice.com/OrgTec/Back/0014.html

          相关文章: 软件工程风险管理

          电话
          电话 18718672256

          扫一扫
          二维码
          本港台开奖 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>