互联网世界鱼龙混杂,我们的网站放在上除了网站用户和会员会造访,还会有一群觊觎网站利益服务器功能的人在暗中观察,抓住机会找到漏洞就把网站一举拿下,从而盗取数据或是利用服务器资源作为矿机等等,因此服务器防御也是不可忽略不可轻视的一方面。
大部分公司在开发运维过程中并不会去刻意注意服务器安全,也不会去请专门的安全人员,直到服务器被攻破,被人勒索了以后才会意识到安全问题的重要性,虽说见兔顾犬,未为晚也,亡羊补牢,未为迟也,但是倘若我们能做到防范于未然,做好基础防御,至少让小学生级别的黑客被拒之门外,岂不善哉。
本文也仅作为基础防御手段收集,如果公司数据非常重要,还是需要请专门的安全公司来保驾护航。
sql注入也是老生常谈了,基本上算是常识了,这种手段无非是利用后台漏洞通过URL将关键SQL语句带入程序并在数据库中执行从而造成破坏性结果。常见情况包括后台使用了的致命的字符串拼接,比如在java的jdbc中使用如下写法
如果入参username在url中被换成不怀好意的sql语句或者其他,数据库也就危险了。
localhost:/testproj/queryUser?username=;drop t_user;
利用框架协议漏洞则是针对程序和系统缺陷,比如漏洞百出的struts2框架,到今天为止也不知道放出多少漏洞了,这些漏洞基本上是针对EL表达式缺陷使得URL中的代码得以执行,针对方式也很简单,换掉struts2或者不断升级。应对这种情况就需要运维人员关注漏洞公告,及时与开发沟通配合,更新程序,代价成本也比较高。这里也推荐可以使用一些漏洞扫描工具,及时发现自己网站的后门,防范于未然。比如ixWebVulnerabilityScanner还是挺好用的。
这个就需要黑帽子们比较有耐心,去一点点找出来,举个例子,网站有效性校验。针对数值有效性,前端有进行过滤,但是网站后台没有做参数有效性校验,这时候恶意者使用F12或postman等拼装ajax请求,将dfa或者-1ad这种非法数字发送给后台,健壮性差的程序就很容易报错,异常暴露到页面上,瞬间就能让操作者知道后台使用何种语言何种框架。更严重的可能是利用程序逻辑漏洞做重复提交、越权操作等行为,因此需要开发人员注意。
这种手段就比较高明了,需要黑帽子会构建钓鱼网站,且对目标网站请求方式比较熟悉。原理就是利用浏览器保存的cookie,比如我登录目标会员网站(这里假设),利用留言功能留下一个钓鱼网址,可能管理员就点了进去,跳转到我构造的网页后触发页面的请求,该请求要增加一个管理员用户