网址传参给搜索页面,如何防注入
网址传参给搜索页面,如何防注入 --------------------编程问答-------------------- 过滤一些危险的字符,查询时使用存储过程 --------------------编程问答-------------------- 给个联系方式,把《在ASP.NET中防止注入攻击》发给你~ --------------------编程问答-------------------- 我上传到我的资源里面了,要是有时间可以看看~ --------------------编程问答-------------------- 直接编码好了使用UrlEncode 方法对不安全的URL地址进行编码
如果你需要获取有用户输入部分的URL参数,这可能带来一定的安全风险,使用HttpUtility.UrlEncode方法对这个地址字符串编码.
HttpUtility.UrlEncode(urlString);
到获取时再解码。 --------------------编程问答--------------------
那跟没编码有什么区别吗??
别人真想注入不是也可以对自己的添加的字段编码后,再执行吗? --------------------编程问答--------------------
我去看看 --------------------编程问答-------------------- 我是自己写的
--------------------编程问答-------------------- 这个防注入,最主要的是在数据库那里配好,
AntiInject AtiInject = new AntiInject();
if (AtiInject.hasInjectdata(sUserName))
return;
if (AtiInject.hasInjectdata(sPassword))
return;
比如考虑只给public的权限,
然后在代码里再处理一下 --------------------编程问答-------------------- string connectionString = DataClass.f_databaseConfigReadToString();
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleParameter[] paramss = new OracleParameter[3];
paramss[0] = new OracleParameter();
paramss[0].OracleType = OracleType.NVarChar;
paramss[0].Size = 2000;
paramss[0].ParameterName = "P_LOGLEVEL";
paramss[0].Value = TextBox1.Text;
paramss[0].Direction = ParameterDirection.Input;
paramss[0].DbType = DbType.String;
paramss[1] = new OracleParameter();
paramss[1].OracleType = OracleType.NVarChar;
paramss[1].Size = 1000;
paramss[1].ParameterName = "P_ERRORMSG";
paramss[1].Direction = ParameterDirection.InputOutput;
paramss[1].DbType = DbType.String;
paramss[1].Value = "";
paramss[2] = new OracleParameter();
paramss[2].OracleType = OracleType.NVarChar;
paramss[2].Size = 10;
paramss[2].ParameterName = "P_TESTMSG";
paramss[2].Value = "";
paramss[2].DbType = DbType.String;
paramss[2].Direction = ParameterDirection.Output;
connection.Open();
OracleTransaction ot = connection.BeginTransaction();
//ot.IsolationLevel = IsolationLevel.Serializable;
try
{
OracleHelper.ExecuteNonQuery(ot, CommandType.StoredProcedure,"P_SEC_LOG", paramss);
DataSet set1 = OracleHelper.ExecuteDataset(ot, CommandType.Text,"select * from N_SEC_LOG_TAB");
this.GridView1.DataSource = set1.Tables[0];
this.GridView1.DataBind();
ot.Commit();
}
catch (System.Exception ee)
{
ot.Rollback();
}
}
传参的方式
补充:.NET技术 , ASP.NET