文章详细

热点文章

最新评论

  • 2016-5-20 12:10:37yummy

    博主,有这个连连看游戏的源码么?太强了

  • 2016-1-8 12:21:02天之蓝

    谢谢楼主共享,正好有用到

  • 2016-1-5 14:59:35远走

    中午乱码不需要修改源码。 1.生成乱码只需在调用MultiFormatWriter.encode()方法的时候把utf8编

  • 2016-1-5 14:59:22远走

    中午乱码不需要修改源码。 1.生成乱码只需在调用MultiFormatWriter.encode()方法的时候把utf8编

  • 2015-12-21 11:07:42mhd

    您好,谢谢您的分享。 我想用flash分别采集两个或两个以上麦克风传进来声音,这个能实现吗?

  • 2015-11-17 17:01:50上品户外

    顶一下 谢谢博主分享

  • 2015-11-5 9:44:55自由职业

    加油,看好你哦。

  • 2015-9-12 22:46:02大雁

    大牛的经验值得学习,烦请大牛发一份源码个到邮箱,多谢

  • 2015-7-17 16:27:38bobojs

    大哥 你太牛了~~ 我以前 改过老版本的 zxing 中文乱码,网上找的 就能解决~用了 zxing 2.2 很多代码都不一

  • 2015-7-4 16:06:32中山婚纱摄影

    学习了,不错

网站安全性浅谈

 发布日期:2013-11-30 13:44:30 点击:100 回复:3

最近有个网友一直在问我什么安全性高的ASP系统。关于网站的安全,我也仅仅是从部分层面有一些体会,今天就分享出来,也作为自己在这方面的一些总结。

这里说明还是以ASP为主。

一、关于漏洞,漏洞修复

这个是关注最多的问题,不管是ASP,PHP还是多高级的语言,漏洞都是无处不在。大多数情况下,漏洞跟开发者有直接或间接的关系。当然,在网站方面,漏洞的主要表现就在参数过滤不严,权限检测不严导致的。

比如前台读取一条新闻,会根据新闻ID这个参数来调用,最初的那些ASP教程里都会这样写

Dim sql,rs
sql="SELECT * FROM NEWS WHERE ID="& Request.QueryString("ID")
Set rs=conn.Execute(sql)

取来的参数不经任何过滤就组装到SQL语句中,只需把参数加些字符,就可实现很多功能

 

'在参数里传入 ID=1 And (SELECT LEN(AdminName) FROM Admin)=5
'SQL语句就成了
SELECT * FROM NEWS WHERE ID=1 And (SELECT LEN(AdminName) FROM Admin)=5
'可以判断管理员名称长度
'在参数里传入 ID=1 And (SELECT Mid(AdminName,2,1) FROM Admin)='a'
'SQL语句就成了
SELECT * FROM NEWS WHERE ID=1 And (SELECT Mid(AdminName,2,1) FROM Admin)='a'
'可以判断某个位置的字符

 

其次是文件上传之类的接口,没经任何验证就直接保存文件,特别是不检测文件名是否合法就以原文件名保存,将直接导致木马文件或后门被上传。

二、修补漏洞的几个层次。

对于一些较早的站长,自己又不大懂得代码的,网站漏洞可是个头疼的问题。网站刚流行的时候,黑客可是个希罕词儿,那时候的网站,也不大注意阻止常规的漏洞,所以,代码中处处都隐藏着类似上面提到的片断,这种网站修补起来很麻烦,网上有些高手于是写了各种通用的防注入程式,其机制就是在代码运行初期,逐个对提交的变量检测(ASP中的Cookie,QueryString,Form),检测的标准一般是基于一些特殊字符(单引号,百分号等)和关键字(select,insert等)。这种做法通常可以起到一定的效果,但同时也有很多不便,比如后台要更新一篇文章,个别时候会出现上述的符号或关键字,就造成文章无法添加,这对用户是非常不友好的。另外,对于文件上传的代码,在调用BinaryRead之前是不能调用Form的,这也会影响到文件上传的模块。这是漏洞修补和第一个层次。

第二个层次,就是在用到外部提交的参数的时候逐一转换或过滤,比如用到数字,就转换int型,用到字符串,如果只需要字母和数字,就把字符串中非字母和数字的过滤掉,然后在组装SQL语句时进行必要的转义。这个层次的主要功夫,就在代码层面,一个Web开发者的水平,也多在这个层面能体现一二。具体代码就不列举了,相信有经验的开发者都有所体会。

第三个层次,就是前年闹的沸沸扬扬的XSS攻击。所谓XSS,全称Cross Site Script,跨站脚本攻击。基本特性就是不直接攻击服务器,而是利用服务器的过滤不严格来构造一些代码,去获取该网站浏览者的隐私信息。在一般的网站后台,很少有考虑到这个问题的,因为后台多是站长自己更新或发布的地方,不会特意去构造XSS代码,所以这种攻击多体现在前台,如一些简单网站的留言板里,如果不对客户的留言内容或其它字段过滤,直接插入到数据库,会导致管理员或其它访客在浏览时遭受跨站攻击,泄漏个人隐私。一般简单的代码是不允许使用html代码,直接对内容进行html编码,这样浏览的时候所有代码都会以原型显示而不会运行。复杂点的方法是针对内容中可能出现脚本或可执行的地方做过滤,尤其是针对IE低版本浏览器,在CSS中都可以运行代码。

代码层面能做到这些,基本上算是比较安全的了,细致的话可以配合上验证码(登录,提交验证,验证过自动刷新),加密(cookie信息加密,验证信息加密)等机制,则可以做到更好。

最后还不要忘记了,除了http协议外还有一个https协议,这是专门用于安全链接的,可防止隐私信息被截获,至于具体使用方法,网络上也有很多介绍。

我来评论

请填写您的称呼

   

最新评论