发布网友 发布时间:2024-10-07 22:42
共5个回答
热心网友 时间:2024-10-12 11:36
从安全角度考虑,querystring当中的参数是不能直接用到查询语句当中去的!原因如下:
querystring当中的参数不一定存在或赋值,querystring获取的值在网址当中能看到,用户可以手动修改,如果用户不小心删掉某个数字或系统异常导致链接跳转出错,后台处理程序就会报错,因此,在使用之前要进行判断,if(Request.QueryString["id"]!=null),如果成立,通过string tempid=Request.QueryString["id"].ToString();
防止越权访问:如果直接在sql当中使用querystring当中的参数,在用户端人为修改参数值的时候,可以躲避系统的安全检查或条件选择,例如querystring里面id= 5 or 1=1,因为是直接使用参数的tostring方法,所以,sql语句变为:select * from news where id=1 or 1=1,这样就可以遍历所有用户信息。如果有些用户是不能公开访问的话,这样信息就泄漏了!
综上,一般操作步骤如下:
判断参数是否存在 if(Request.QueryString["id"]!=null) string tempid=Request.QueryString["id"].ToString();
判断参数是否符合条件 去除异常符号:可以通过正则匹配或string.replace()函数过滤空格、单引号等
将处理后的参数加入sql命令!
热心网友 时间:2024-10-12 11:32
从这句话来看,只能是Request.QueryString["id"]不存在,所以你调用它的ToString()方法会出现这个异常。热心网友 时间:2024-10-12 11:34
如果是这一行报错的话 那么肯定是Request.QueryString["id"]这里报错 请先确认你的url传递时是否带有该参数 同时QueryString是只在url中寻找 还有 楼主这种拼接查询sql语句的方法很不安全热心网友 时间:2024-10-12 11:34
首先看看
Request.QueryString["id"].ToString();是不是空的。如果不是空的,建议
写法。
热心网友 时间:2024-10-12 11:30
楼主,你的Request.QueryString["id"]胃null,也就是说你没有取到你要的id,你直接引用一个null,在null的基础上执行操作,所以报空。热心网友 时间:2024-10-12 11:34
从安全角度考虑,querystring当中的参数是不能直接用到查询语句当中去的!原因如下:
querystring当中的参数不一定存在或赋值,querystring获取的值在网址当中能看到,用户可以手动修改,如果用户不小心删掉某个数字或系统异常导致链接跳转出错,后台处理程序就会报错,因此,在使用之前要进行判断,if(Request.QueryString["id"]!=null),如果成立,通过string tempid=Request.QueryString["id"].ToString();
防止越权访问:如果直接在sql当中使用querystring当中的参数,在用户端人为修改参数值的时候,可以躲避系统的安全检查或条件选择,例如querystring里面id= 5 or 1=1,因为是直接使用参数的tostring方法,所以,sql语句变为:select * from news where id=1 or 1=1,这样就可以遍历所有用户信息。如果有些用户是不能公开访问的话,这样信息就泄漏了!
综上,一般操作步骤如下:
判断参数是否存在 if(Request.QueryString["id"]!=null) string tempid=Request.QueryString["id"].ToString();
判断参数是否符合条件 去除异常符号:可以通过正则匹配或string.replace()函数过滤空格、单引号等
将处理后的参数加入sql命令!
热心网友 时间:2024-10-12 11:33
楼主,你的Request.QueryString["id"]胃null,也就是说你没有取到你要的id,你直接引用一个null,在null的基础上执行操作,所以报空。热心网友 时间:2024-10-12 11:36
首先看看
Request.QueryString["id"].ToString();是不是空的。如果不是空的,建议
写法。
热心网友 时间:2024-10-12 11:33
如果是这一行报错的话 那么肯定是Request.QueryString["id"]这里报错 请先确认你的url传递时是否带有该参数 同时QueryString是只在url中寻找 还有 楼主这种拼接查询sql语句的方法很不安全热心网友 时间:2024-10-12 11:37
从这句话来看,只能是Request.QueryString["id"]不存在,所以你调用它的ToString()方法会出现这个异常。