这几天学校办了个信息安全竞赛,这个比赛让我回想起多年前励志成为能黑掉美国中情局的超级黑客的那个年轻幼稚的少年,以及那个少年的青葱岁月,后来时过境迁,我早已不再意淫着诸如黑掉中情局这种事情,而只是安逸苟且的生活在大学校园,任波澜的信息吹打着世界的边缘。
出于对小时候的怀念,我参加了这个比赛,并且最终成功完成了所有题目。里面的题目包括XSS的利用,sql注入,cookie注入,盲注,上传漏洞,暴力破解,加密解密等等。这些东西乍看之下离中小站长很远,可是里面的每一项却都关乎网站的健康与安全,这两天出于做题的需要,也看了大量的相关书籍和资料,我发现其实国内的很多网站,安全都是一个很大的问题,中小站长不像土豪大站,能豪掷一笔养个安全团队做code review,每天做扫描(据说阿里的安全系统每十分钟扫描阿里的十万个网页,保证每个网页的健康安全)。
但中小网站的安全还是得做啊,被入侵被攻击少则被搜索引擎封杀流量下降,多则被人财两空。下面我结合自己的经验给出一些简单的网站防护策略,希望能帮助到受安全问题困扰,或者希望加强网站安全建设的站长们。
1.密码
很多最简单的地方往往是最不受重视的地方,一个网站的管理员应该有后台密码,而如果你还是网站的设计者或者建设者,你还应该有数据库密码,这两个密码一定要复杂,杜绝弱口令,并且最好不要相同。更不要把网站的密码设置为你的通用密码,比如邮箱,QQ,其它网站账户的密码,这一点非常重要,人们很多时候往往重视技术上的天衣无缝,却忽视社会工程的威力,经验丰富的黑客对于信息的利用只能用登峰造极来形容,即使你自身网站在程序上毫无漏洞(虽然这非常难),但是你注册过或使用过的网站和服务却不一定都那么难以攻破,因此,千万不要把网站的管理密码和你的个人生活中使用的密码挂钩。
2.信息隐藏
还是上面说的那点,黑客对于信息的利用都很厉害,那么作为防护者,我们就应该尽可能的隐藏信息,比较敏感的信息有,网站后台路径,个人邮箱(不是网站邮箱),数据库结构——表和字段的名字,站长个人信息等等。
大多数网站会有联系我们之类的页面,但是一定要注意,这个地方留的联系方式应该是业务或者客服,而非开发者或网站第一管理者,而邮箱等信息也应该是工作邮箱,而非你平时使用的个人邮箱,这一点能有效的防止社工。
而数据库结构的隐藏,则是更偏技术性的,在这次比赛中,用sql注入猜解表名花了我大量的时间,而如果出题者把表名设置的更复杂一点,我就完全没辙了。大多数网站会有admin表,里面会有管理员的账号密码等信息,一旦黑客找到了注入漏洞,就可以方便的拿到所有管理信息了,但是如果我们把表名改成,adminhahaha,这样的表是所有扫描软件的字典里都没有的,黑客也会为这种表而痛哭。
3.善用JS
即时很多不太懂技术的站长,对JS也是略知一二的,JS使用起来非常方便,且非常强大,大多数时候,JS都是安全的,但是某些时候,使用JS却是有风险的,因为JS是运行在客户端的,即所有用户都可以随意修改,如果你使用JS来限制上传文件,那就不好玩了。
4.谨慎对待上传
如果你的网站有上传的地方,请一定要谨慎对待。比如PHP用来判断是否是图片的函数getimagesize,就有著名的GIG89a漏洞,你随便上传一个PHP文件,只要在最前面添加一个GIG89a,就能伪装成gif文件骗过PHP的检查,如果你的后缀判断是用JS来实现的,那你的网站就会非常容易的就沦陷了。事实上,上传的漏斗还有不少,虽然大部分(比如IIS6.0的)都已经很老了,但是还是有不少网站在使用。特别提示,第三方编辑器的上传漏洞更要警惕。如果你给用户提供富文本的编辑器,请一定要做好编辑器的保护工作。
5.注入
世界上大多数网站还是因为注入漏洞沦陷的,包括QQ,新浪,甚至百度,旗下的网站都会有注入漏洞,你在乌云可以看到很多,注入漏洞的本质是利用对数据库的操作,普通注入,cookie注入,盲注,方法不同,但原理都是一样的,即恶意构造查询语句以达到不可告人的目的,简单的替换可能有一定的效果,但是高级黑客会不断尝试找到你的写法,从而改造出能够运行的注入代码。普通的站长可以寻求第三方安全插件的帮助,360的防注入工具和安全狗等都是不错的选择。
6.其它(XSS,Cookie)
XSS(Cross Site Script)是非常容易被利用的地方,具体的解释请百度,防御的办法在于警惕任何有用户输入的地方,XSS和注入的不同之处在于,XSS更多是构造恶意JS,使用户或管理员运行,而注入是构造查询语句,对数据库做操作。同样的,对于开发能力有限的站长,使用第三方安全插件是不错的选择。
至于cookie,管理员应该注意自己的cookie不要被盗,同时对cookie的处理也要多加小心,对于cookie的参数要和其他地方一样做防注入的处理7.更多建议
一定要经常备份。
经常扫描网站,看有没有异常。
很多时候,网站使用的成熟框架是相对安全的(Wordpress),但是里面的插件却有不少是危险的,使用前要多查查风险。