我和每个表都有一列多了JS代码。。数据没办法在用`。。如果防止..
有没有过滤字符串的办法。有一个不明白他怎么可能直接操作我的库据库的
大哥帮帮

解决方案 »

  1.   

    应该是被sql注入了,楼主检查自己的代码看看
      

  2.   

    他通过其他的渠道获取了你的数据库的用户名和密码,不就可以操作你的数据库了,或者是你的数据库所对应的前台程序没有进行SQL注入攻击的防范,原因多着呢!没有什么无法明白的。
      

  3.   

    用SQL参数或者直接写存储过程,然后调用存储过程,不要在程序中直接写SQL语句;这样别人很容易操作你的数据库的。
      

  4.   

    网上一些介绍SQL注入方法,看看吧,可以在提交时过滤
      

  5.   

    上次也被黑了一次,整了半天呀,是sql注入.
      

  6.   

    举例:
    比如你有页面用ID接值string sql="select * from t1 where userid="+ID;//你没有过滤ID的话就肯定能被注入了,一些旁注软件可以检测到的。
    //他们给你传ID传成  1 or 1=1 ,你想想程序会是怎么判断呢。。
    //解决办法,把ID过滤下。两种方法如下:
            /// <summary>
            /// 防SQL注入过滤
            /// </summary>
            /// <param name="str"></param>
            /// <returns>替换掉危险字符后的字符串</returns>
            public static string DelSQLStr(string str)
            {
                if (str == null || str == "")
                    return "";
                str = str.Replace(";", "");
                str = str.Replace("'", "");
                str = str.Replace(",", "");
                str = str.Replace("&", "");
                str = str.Replace("%20", "");
                str = str.Replace("--", "");
                str = str.Replace("==", "");
                str = str.Replace("<", "");
                str = str.Replace(">", "");
                str = str.Replace("%", "");
                return str;
            }
            /// <summary>
            /// Sql注入判断
            /// </summary>
            /// <param name="InText">验证字符串</param>
            /// <returns>有危险语句则返回True</returns>
            public static bool SqlFilter2(string InText)
            {
                string word = "'|\"|*|%|;|char(|and|exec|insert|select|delete|update|chr(|mid(|master|or|truncate|char|declare|join";
                if (InText == null)
                    return false;
                foreach (string i in word.Split('|'))
                {
                    if ((InText.ToLower().IndexOf(i + " ") > -1) || (InText.ToLower().IndexOf(" " + i) > -1))
                    {
                        return true;
                    }
                }
                return false;
            } 
      

  7.   

    你被SQL注入攻击了,马上找找中的问题,然后使用楼上给的方法.
      

  8.   

    楼上的代码,应该可以过滤,界面上的SQL注入。至于URL的。我也没有好办法,请指教
      

  9.   

    是SQL注入,在从URL、表单都可以注入,.NET可以从Application_BeginRequest过滤,就用12楼的过滤代码
      

  10.   

    我的SQL都是这样写的
    string sql = string.Format("update Department set Exist=1 where DepartmentID={0}", id);
      

  11.   

    你们的意思。。就是我在URL上的参数都要用12楼过虑
    就可以解决了吗`??
    大哥们急啊`
      

  12.   

    如果你喜欢用reqest.querystring传参,那最好加密url,最好用存储过程少用拼接的sql语句