普通用户可能感觉不到,但站长朋友肯定知道,如果一个网站放置了一段时间,不管它是什么,当你有一天去看它的时候,你可能会发现它已经被暂停了。事实上,网站被挂起是一种普遍现象,尤其是基于CMS开发的网站。网站一旦挂载,会给访问者和网站本身带来一些麻烦,如:
1、网页上会出现一些恶意脚本,可能弹出大量垃圾广告弹出窗口,跳转到无关甚至非法的网站,插入大量链接,页面死圈等,降低访问体验;
2、影响网站SEO效果,降低百度排名,网站很容易被降权等;
3、非法修改网站源代码,甚至删除网站程序文件,造成数据丢失。
上面提到的这些有害后果,其实网站一旦挂载,清理也是一件非常麻烦的事情,因为黑客已经破坏了你网站的源文件,而且不止一个地方插入了恶意代码。
那么这些黑客是如何将恶意代码植入我们的网站程序的呢?
主要漏洞如下:
1、文件上传漏洞:如上传页面未验证上传文件的格式,导致上传动态脚本(如直接上传PHP文件),上传页面未验证权限,导致非法用户可以上传文件等;
2、表单数据未过滤漏洞:例如,用户在发布文章时,可以插入JS和CSS代码,这足以植入恶意脚本,这些JS和CSS代码将在页面呈现时运行;
3、SQL注入漏洞:存在SQL注入点,黑客可以入侵数据库进行操作,严重时甚至删除数据库;
4、管理后台弱密码漏洞:有些管理后台账号密码太简单(如admin),一猜,直接登录后台,怎么操作就怎么操作
5、在发现该漏洞后,利用该漏洞,将恶意代码植入到web程序中,使得用户在访问网页后可以加载这些恶意代码,从而达到攻击者的目的。
现在我们知道了黑客挂马的一般过程,如何避免网站挂马?结合我十多年的运行维护经验,提出一些建议供大家参考。
1、现在市面上的CMS源代码是公开的,所以0day中存在很多漏洞。漏洞公之于众后,只要找到这个CMS建的站,基本上可以攻击成功,所以范围很广。但如果我们的程序是自行开发的,攻击者不知道我们的源代码逻辑,攻击将非常困难。如果是基于CMS的网站,一定要注意官方补丁,及时修复。
2、在web开发领域,我们一直强调用户的任何输入都是不可信的。在得到用户提供的数据后,我们必须进行必要的验证(格式是否正确)和过滤(过滤一些敏感字符)。
3、过滤掉这些内容:JS标签和代码、CSS标签和代码、HTML标签中的各种事件、单引号、双引号和SQL关键字;
4、这是非常重要的。即使攻击者获得上载漏洞,我们也只允许将其上载到特定目录。如果其他目录没有写权限,它们将不会被感染。如果他们没有执行权限,上传的动态脚本将不会被执行。
5、背景地址更改为无法猜测的地址。密码必须设置得更复杂。
6、定期备份网站,然后做木马查杀,现在杀毒软件可以查杀网页木马。