急急....我的数据库多了很多JS代码 我和每个表都有一列多了JS代码。。数据没办法在用`。。如果防止..有没有过滤字符串的办法。有一个不明白他怎么可能直接操作我的库据库的大哥帮帮 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该是被sql注入了,楼主检查自己的代码看看 他通过其他的渠道获取了你的数据库的用户名和密码,不就可以操作你的数据库了,或者是你的数据库所对应的前台程序没有进行SQL注入攻击的防范,原因多着呢!没有什么无法明白的。 用SQL参数或者直接写存储过程,然后调用存储过程,不要在程序中直接写SQL语句;这样别人很容易操作你的数据库的。 网上一些介绍SQL注入方法,看看吧,可以在提交时过滤 上次也被黑了一次,整了半天呀,是sql注入. 举例:比如你有页面用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; } 你被SQL注入攻击了,马上找找中的问题,然后使用楼上给的方法. 楼上的代码,应该可以过滤,界面上的SQL注入。至于URL的。我也没有好办法,请指教 是SQL注入,在从URL、表单都可以注入,.NET可以从Application_BeginRequest过滤,就用12楼的过滤代码 我的SQL都是这样写的string sql = string.Format("update Department set Exist=1 where DepartmentID={0}", id); 你们的意思。。就是我在URL上的参数都要用12楼过虑就可以解决了吗`??大哥们急啊` 如果你喜欢用reqest.querystring传参,那最好加密url,最好用存储过程少用拼接的sql语句 有个问题很烦恼! 主题:项目在vs2005下运行正常,在iis下运行出错怎样解决,请大家邦忙. 奇怪啊真奇怪啊 ASP.NET excel 转 html 异常~~~~~~~~ 日期转换问题 记录操作步骤 菜鸟问题 请问大家一般.net网站的论坛用什么的论坛? 小弟问一些问题 请教.net框架在哪里有下载的?是只有20几M吗? 在gridview 中选择DropDownlist 的值时,控制另一列隐藏 200分关于数据发送的问题
比如你有页面用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;
}
string sql = string.Format("update Department set Exist=1 where DepartmentID={0}", id);
就可以解决了吗`??
大哥们急啊`