网络编程 
首页 > 网络编程 > 浏览文章

程序开发中的几个请不要相信

(编辑:jimmy 日期: 2024/12/26 浏览:3 次 )
链接中的例子是一些脚本攻击相关的内容,有时间的朋友可以点开看看。

1.不要相信Request.QueryString:

相信在asp时代,这个问题比较严重,不信,随便到网络上找几个asp的企业站,找到这种url"view.asp?id=xxx",改成"view.asp?id=xxx or 1=1",相信你会看到不一样的东西,到了.net,应该很少了,不过上次看到有人说CSDN爆过哦,简单的解决方法是在取得数据时做数据类型验证或转换。比如:
int ViewID = 0;
if(int.TryParse(Request.QueryString["ID"], out ViewID)){
//...
}
2.不要相信maxlength:
 有时候我们想客户端输入的某个值不超过一定的长度,这个时候可能就会用到input的maxlength,但maxlength能100%保证这个值的长度不超过maxlength吗?

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
暂时也没有什么好的解决办法,以前找到过过滤script标签的代码,但似乎不太完美。
6.不要相信Cookie:
网站中不可避免的会使用到Cookie,但如果一不注意,小心你的Cookie成了别人的"Cookie",
http://img.jb51.net/online/demo0415/Cookie.asp
取Cookie和写Cookie的js方法是在网上找到的,具体链接也找不到了。解决办法,似乎是Cookie加密(当然,即使是加密了,也尽量不要把敏感数据放到Cookie中),不知道各位高手还有没有其它好办法。
7.不要相信Request.UrlReferrer:
如果有朋友用这个来验证请求,那么请注意了,这个东西也是不可信的。见代码;
System.Net.HttpWebRequest request = System.Net.WebRequest.Create("https://www.jb51.net/") as System.Net.HttpWebRequest;
request.Referer = "https://www.jb51.net/";
...
那么,这个时候你取得的Urlreferrer会是https://www.jb51.net/,但这个请求却是伪造的。
8.不要相信用户:
用户就是你潜在的威胁,客户端的东西,永远都不要轻信。
另,select标签的内容也是不可信的,大家可以动手试试,随便建个页面,里面放个select,然后:
复制代码 代码如下:
javascript:alert(window.c=function(){var s=document.getElementsByTagName("select")[0];for(var x = 0; x < 100; x++){s.options[x]=new Option("选项" + x, x)}}());

欢迎高手不吝赐教。示例代码下载。
上一篇:Web通信 分析工具 [推荐]
下一篇:phpMyAdmin“无法载入 mysql 扩展, 请检查 PHP 配置”问题的解决方案
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 站点导航 SiteMap