Request.QueryString["id"] 取回来的数据,不安全怎么办? 本来从数据库读出的page.asp?id=100用户改了page.asp?id=1111,然后就会报错,我获取的时候总要去查一下有没此ID。很麻烦吧,我很多数据都是通过url传值的或者有什么方法防止这种事发生。? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取一下最大的Id,然后判断,如果传入的比这个大,就把Id改为最大的在取数据的时候判断集合是否为空,不为空再读取数据 if(Request.QueryString["id"]!=null||..............(自己定规则)){}else{ return;(或者response.redirect('..')等其他容错处理)} 在web.config中定义错误信息页,或者在全局文件Global的Application_Error方法中重定向到错误信息页。 自己进行处理,首先把获取的id进行处理(比如过滤'...),然后查询完毕判断时候获取到数据了,没有就说明id不存在,跳到没找到页面,就像CSDN 404 会告诉你:你懂得,一样的,如果有数据,进行显示, 数据加密,然后如果用户输入的有问题就跳到错误页,在接参数的时候进行异常处理。百度百科原来也有参数,自己改参数的话,就跳到自定义错误页了。现在百度改为url重写了。那个id被重写到htm前面了。http://baike.baidu.com/view/170250.htm?func=pfpic try { if (Request.QueryString["id"] != null) { Request.QueryString["id"].ToString(); } else { } } catch (Exception) { throw;//history.go(-1) } page.asp?id=1111不应该报错吧,应该提示该id不存在什么的如果报错是你代码不严谨 “用户改了page.asp?id=1111”——对于一些“恶意”或“有意”的提交,不必过滤什么,直接拒绝,重定向到错误页。这样可以一定程度上简化开发。 不想这个页面传入一个参数,又要new 一个 bll 去查. 哪个页面又new bll ID判断类型。用参数的方式提交SQL。基本上就不会不安全。使用数据的赋值的时候,要先判断数据是否为空。如果空就提示该数据不存在,或者转到错误页面。 加密有个啥用啊。比如?id=sdafjdflkj34234 一堆东西。那用户也可以在这对东西上加上一串 as3243 也会报错吧。 把id加密放在 url上 读取解密就行了 有一个加密功能,楼主可以去百度一下Request加密,或者用cookie 把你的传的参数加密....string url = "http://192.168.10.14" + root + "?id=" + PassWord.Encode(hyid); if(Request.QueryString["id"]!=null){ Table table=Bll.GetTable(int.Parse(Request.QuesryString["id"])); if(table !=null){ ..... }else{ Response.redirect(""); }} 取到的数据在使用之前先对数据进行判断.比如id=111的.那么id应该是int型的就先if (!int.TryParse(Request.QueryString["id"].ToString(),out id){} 这是必须的,必须要判断id能不能转换成数值类型,然后在数据库查是否存在此ID。什么都省了,公司是不是可以连你也省得雇佣了? 除了通过request.querystring[]获取id,还能用什么方法呢??? 如何移动这个视频模块 内文广告问题 怎样从textbox中读取数据 XML节点值包含HTML标签 |M| 第二贴: 大家看一下这样的 用户登录 需求要怎么来做合适 谢谢 asp.net动态地址映射静态地址请教 如何使用转义字符? 请教一个关于Gridview超链接参数的问题。 如何使文本域随着绑定字段值的大小自动显示特定的行数?而且可以随屏幕分辨率的改变而调整? web control listbox 经javascript改变,在服务器端如何取回listbox的值? windowservice 在window7中安装问题 FileUpload上传图片的问题、、、、、
{
}
else
{
return;(或者response.redirect('..')等其他容错处理)
}
没有就说明id不存在,跳到没找到页面,就像CSDN 404 会告诉你:你懂得,一样的,如果有数据,进行显示,
http://baike.baidu.com/view/170250.htm?func=pfpic
{
if (Request.QueryString["id"] != null)
{
Request.QueryString["id"].ToString();
}
else
{
}
}
catch (Exception)
{ throw;//history.go(-1)
}
不应该报错吧,应该提示该id不存在什么的
如果报错是你代码不严谨
——对于一些“恶意”或“有意”的提交,不必过滤什么,直接拒绝,重定向到错误页。这样可以一定程度上简化开发。
基本上就不会不安全。使用数据的赋值的时候,要先判断数据是否为空。如果空就提示该数据不存在,或者转到错误页面。
string url = "http://192.168.10.14" + root + "?id=" + PassWord.Encode(hyid);
Table table=Bll.GetTable(int.Parse(Request.QuesryString["id"]));
if(table !=null){
.....
}else{
Response.redirect("");
}
}
就先
if (!int.TryParse(Request.QueryString["id"].ToString(),out id)
{}
什么都省了,公司是不是可以连你也省得雇佣了?