有一个市级的项目,他们的服务器说用了个什么防SQL注入之类的安全软件,我们程序在他们的服务器上本来可以正常使用的现在都不可以用了,具体发生安全问题的源码有如下几处典型的:
1.复选框的单击事件(代码如下)
private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
{
if(CheckBox1.Checked)
{
ddl_MainOrganID.SelectedValue="85";
txt_MainOrganName.Visible=true;
ddl_MainOrganID.Visible=false;
}
else
{
txt_MainOrganName.Text="";
txt_MainOrganName.Visible=false;
ddl_MainOrganID.Visible=true;
}
}以上这个事件一触发就会被他们那个软件件检测出不安全。
想问一下,这种情况怎么办??该如何处理??
1.复选框的单击事件(代码如下)
private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
{
if(CheckBox1.Checked)
{
ddl_MainOrganID.SelectedValue="85";
txt_MainOrganName.Visible=true;
ddl_MainOrganID.Visible=false;
}
else
{
txt_MainOrganName.Text="";
txt_MainOrganName.Visible=false;
ddl_MainOrganID.Visible=true;
}
}以上这个事件一触发就会被他们那个软件件检测出不安全。
想问一下,这种情况怎么办??该如何处理??
(1)private void Button1_Click(object sender, System.EventArgs e)
{
object o=Database.Database.ExecuteScalar(Database.Database.ConnectionString,CommandType.Text," SELECT [ID] FROM [User] WHERE [Name] = '"+txt_Name.Text.Trim()+"'AND IsUsed='0'");
if(o!=null)
{
Response.Write("<script language='javascript'>alert('Error!!!此用户已经存在请选用其它用户名!!!');</script>");
}
else
{
Response.Write("<script language='javascript'>alert('可用!!!');</script>");
}
}
没见过那软件 不清楚
2. object o=Database.Database.ExecuteScalar(Database.Database.ConnectionString,CommandType.Text," SELECT [ID] FROM [User] WHERE [Name] = '"+txt_Name.Text.Trim()+"'AND IsUsed='0'");
请使用传入参数,不要直接拼sql
1.你应该用SqlParameter接收字符串
2.自己构造接收字符串的过滤方法