网络安全
1. XSS(跨站脚本攻击)
最常见的是cookie劫持,简单来说就是我们用浏览器登录一个网站,主要是用存在客户端浏览器里的cookie来保存客户唯一标识的令牌,在Java写就的网站里,是一个jsessionid,如果通过抓包获取了浏览器的jsessionid,那么在另一个地方,就可以模拟用户的登录,从而窃取用户的资料乃至进行一些登录后才可以做的操作,危害性很大。
2. SQL注入
在网站所有搜索输入框中,输入的内容,一般会通过在服务器端拼接SQL语句去向数据库发起查询请求,然后把结果展示在网页上,如果查询一个人'jack':
期望的语句是:
select * from user where username='jack';
但如果被输入的内容为jack' or '1‘=’1,
结果语句变为:
select * from user where username='jack or ‘1’=‘1';
于是,所有用户的资料都被查询出来,如果后面跟的不是1=1,是drop等更具毁灭性的语句,那带来的损失将无法估量。
3. 文件上传漏洞
很多网站都有文件上传的功能,而少数网站并没有对文件后缀名进行限制,所以有可能被恶意的人抓住机会,上传一些恶意程序。
比如针对Java网站的JspBrowser.jsp,这个程序上传并执行后,可以在网页端看到整个服务器的目录结构,所有文件,以及可以在网页上执行服务器上的一些命令,危害极大。
要避免这种情况,首先要对上传文件的类型加以限制,并且对上传文件夹进行随机生成的处理,使得黑客无法掌握到上传路径,另外将上传文件夹放在另外一个存储服务器上,而不是应用服务器内,将上传文件夹设置为不可执行目录,都是规避这一攻击的方法。
4. 网站通讯安全SSL
大家也都知道,大型网站如百度,淘宝已经实现了全站加密,也就是部署了https证书,https证书实际上是一种非对称加密算法,用来对浏览器和服务器之间的通讯数据进行加密,使得在公网上传输的数据不会被人轻易抓包并解析,用来盗用,篡改。在交易类,金融类的网站上尤为必须,
特别注意的是,现今很多公司不光有网站,还有iOS,安卓,微信等移动端,那么移动端的接口,和微信的站点,也必须部署SSL证书,保障数据安全。
5. 访问控制
对于服务器来说,最重要的是要有一个好的访问控制策略,首先对不必要的端口进行关闭,另外对经常用的比如ssh,ftp默认端口进行修改,也会极大降低安全隐患,还有linux的iptable,限制一些ip对一些核心端口的使用,都可以提高安全性。
对于数据库来讲,设置白名单是必要的,对读写账号和只读账号的登录地址进行分配,培训开发人员正确使用账号,管控运维人员在生产环境的操作,必要时可以用堡垒机,数据库审计等方式进行安全控制。
6. 加密算法
对于一些加密的算法,比如MD5,虽然是不可逆算法,但是由于被广泛使用在互联网行业,所以出现了很多逆向查询的网站,也就是直接的MD5加密其实并不安全,所以需要在算法里加一些干扰因素,也就是加盐的过程,这个盐值可以是用户名,邮箱,注册时间等信息的一部分,这样得到的MD5串相对难以破解。
7. WEB框架安全
众所周知,当前无论用任何语言开发的网站多数采用开源的第三方MVC框架,比如Spring,Struts,而这些框架都曾暴露出漏洞,Spring3的类加载漏洞,以及Struts2的XSS漏洞,都对使用这些底层框架的网站产生过一些影响,作为网站的运营者,需要关注这些安全领域的问题,及早修复,打补丁,其中还包括操作系统补丁,各种服务器端工具软件的补丁。
好在如果使用公有云服务,比如阿里云,已经提供了升级补丁的服务并且也很便宜,这方面可以采用第三方的方案,如果是自有机房,IDC的话,还需要运维及时跟进行业最新安全动态。
8. WEB服务器安全
对于使用Apache,Tomcat,Jboss,Nginx之类免费Web或应用服务器的团队,也应该对服务器软件进行深入的研究,尤其是配置,对于apache来说, 删除不必要的module可以减少风险
对于Nginx,升级到新版本更加安全,tomcat则要删除例子应用和管理权限配置,同时关注所使用服务器的官方网站,随时更新漏洞补丁及做好防范。
9. DDos,CC攻击
这类攻击主要是掌握了大量肉鸡的黑客或非法组织,采用成百上千台机器对网站发起请求,有的是以大流量阻塞网站的通讯,有的是用高频的请求,去耗尽网站服务器的系统资源,总之这种攻击手法一般很难防御,除非有很大的机房和负载均衡机制。
当然,现在公有云服务商比如阿里云,腾讯云也都有相应的服务,只是比较贵,也有一些安全厂商如知道创宇,提供按年付费的防攻击服务,只需将域名解析到安全公司的安全云上,他们就可以通过安全策略过滤掉一些攻击流量和请求,使得真正回到网站服务器的请求基本是正常合法请求,保护了服务器的资源。
10. 羊毛党,反欺诈
对于互联网金融类网站,还有一种业务需求,就是尽量屏蔽掉羊毛党,和欺诈用户,这方面也有很多第三方公司提供相应的服务,比如安全厂商知道创宇,提供了反羊毛的服务,通过接口调用的方式可以查询某一个用户的羊毛指数,如果这个用户在其他平台多次被报告为羊毛党,会在安全公司的数据库里被标识出来,