asp.net 防止sql木马注入

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:46:39
我的网站是asp.net+sql server2000写的,最近老是中木马注入,数据库所有text类型和varchar字段,被注入了<script>location.herf('地址');</script>这种脚本代码,每次中招以后都是手动去删除这些东西,有没有能够防止的方法啊,救命啊

一般就是把sql的关键字和单引号全都replace掉。
然后在用户输入的变量外面多加一层括号,这样就不容易注入了。
但是如果你的机器被人入侵,那就不是sql解决的问题了

...
你看看下面这篇文章 里面讲解比较详细 希望对你有所帮助

被入侵的话,有两个问题,
一,服务器本身不安全或是别的程序不安全。
二,你自己的代码没有防SQL注入。

如果是第二个问题,那你以后写代码操作数据库时,给用户输入的字段用参数方式传给服务器。下面是例子:
[更新、添加、删除]
SqlConnection conn = new SqlConnection();
string sql = "update admin set user=@acc,pwd=@pass where ID=@id";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@acc", SqlDbType.VarChar, 20).Value = txtUser.Text;
cmd.Parameters.Add("@pass", SqlDbType.VarChar, 20).Value = txtPass.Text;
cmd.Parameters.Add("@id", SqlDbType.VarChar, 20).Value = Session["ID"].ToString();
int i = cmd.ExecuteNonQuery();
[查询]
sql = "select * from admin where user=@acc and pwd=@pass";
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);