Web安全实践指南:从服务器到代码层面的安全建议
在互联网越来越成为生活的一部分的今天,Web网站可谓多如牛毛,Web安全也成为互联网安全的重中之重,甚至发展成有专门的职业来为Web安全保驾护航,作为Web网站开发人员,在网站开发和维护的过程中,更要牢固树立安全意识,避免在代码中引入不安全的因素,建设好Web安全的第一道防线。下面是一些针对Web安全方面的一些建议。
服务器层面
- 网站应尽量使用HTTPS访问。HTTPS在传输数据时会对数据进行加密,可以有效避免数据传输过程中的敏感数据泄漏或数据篡改。
- 服务器密码设置应尽量复杂或采用密钥方式登录。很多别有用心的人会使用脚本撞库的办法来破解服务器密码,所以服务器密码应尽量设置复杂,特别是高权限账户,也可以舍弃密码采用密钥认证的方式来加强安全性。如果使用密码登录,可以用防火墙的方式来拒绝非指定IP的登录。
- 不要暴露不需要的端口。在公有云环境下,除了对服务器本身的攻击,黑客还可能对数据库等基础设施进行攻击,所以要尽量避免暴露不需要的端口,如果实在无法避免,一定要设置足够复杂的密码来保护这些资源,也可以更改默认端口,降低被攻击的概率。
- 及时处理安全警告。很多云厂商,比如阿里云,腾讯云针对服务器发布安全警告信息,比如重大漏洞警告,异地登录警告等,一定要及时留意这些信息,遵循安全建议,及时修复相关系统漏洞,避免给黑客以可乘之机。
代码层面
- 技术选型时应选择最稳定,最流行用的技术。最稳定,最流行意味着技术本身的安全性已经通过了很多项目的验证,也意味着在出现安全问题的时候可以得到及时妥善的处理。
- 对常见的漏洞进行防御。比如XSS,SQL注入,任意文件上传,重放攻击等。
- 对于关键或者敏感的信息,比如用户密码,在数据存储的时候务必进行加密。
- 对业务接口进行限流,保证服务的可用性,很多框架提供了相关支持。
- 记录操作日志。操作日志可以在出现安全问题时最大程度提供相关操作信息,方便事故追查和后续处理。