掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

这里有一份Web开发者安全清单

在云端开发安全、坚固的web程序是一件非常苦难的事情。如果你觉得它很简单,要么你是个高手,要么你未来就会遇到大问题。

如果你中了MVP,觉得你可以在一个月内做出又有价值、又安全的产品,那你一定要小心了。在看了下面的检查单之后,你会发现自己其实忽略了很多至关重要的安全因素。

这个检查单很简单,我也不敢说做了这些你的产品就一定足够安全。我开发安全web程序已经有了超过14年的时间,在这个过程中我也经历了很多让我感到痛苦的事情,这个检查单就是基于这些痛苦的经历而做出来的。我希望你在做web程序的时候,也能仔细考虑一下安全问题。

数据库

  • [ ] 在验证用户身份以及敏感数据(例如tokens、电子邮件地址和账单详情)时请对数据进行加密
  • [ ] 如果你的数据库支持低成本加密(例如AWS Aurora),请打开这些功能以保护硬盘上的数据。确保所有备份也经过了加密。
  • [ ] 当数据库访问用户账户的时候,仅使用最小权限。不要使用数据库的root账户。
  • [ ] 使用特别设计的key store来存储和分配秘密数据。不要在程序中使用hard code
  • [ ] 只使用SQL prepared statements,以此来彻底杜绝SQL注入。例如,如果你使用的是NPM,那么就不要使用npm-mysql,而是要使用支持prepared statementnpm-mysqul2

开发

  • [ ] 确保软件的所有组件都经过了漏洞扫描,每一次版本更新都要扫描。这意味着O/S、库和包都要扫描。这个操作应该在CI-CD过程中进行自动化。
  • [ ] 开发系统的安全和产品系统的安全一样重要。你应该使用安全、独立的开发系统来进行软件开发。

身份验证

  • [ ] 确保所有的密码都使用了正确的crypto进行了加密,例如bcrypt。永远不要自己写crypto,而且要用随机数据对crypto进行正确的初始化。
  • [ ] 使用简单但是足够安全的密码规则,鼓励用户创建随机长密码。
  • [ ] 在登录和所有服务提供商处使用多重验证。

拒绝服务保护

  • [ ]确保针对APIDOS攻击不会影响你的网站。至少,你应该在登录和token生成等较慢的API路径中设置rate限制。
  • [ ] 给用户提交的数据和请求设置合理的规模和结构限制。
  • [ ] 通过CloudFlare等全局缓存代理服务使用Distributed Denial of Service (DDOS)。当你遭受DDOS攻击时你可以使用它。

Web流量

  • [ ] 在整个网站上使用TLS,而不仅仅是用在登录表单和响应上。永远不要只在登录表单上使用TLS
  • [ ] Cookies必须只能是httpOnly
  • [ ] 使用不允许unsafe-*后门的CSP,虽然配置起来很麻烦,但是这样做很值得。
  • [ ] 在客户端响应上使用X-Frame-OptionX-XSS-Protection header
  • [ ] 使用HSTS响应,强制TLS-only的接入。将所有HTTP请求重定向到服务器的HTTPS上作为备份。
  • [ ] 在所有表单上使用CSRF tokens,使用新的SameSite Cookie,它可以一次性针对所有更新的浏览器修复CSRF

API

  • [ ] 确保你的公共API中没有可枚举性资源。
  • [ ] 确保用户在使用你的API的时候,他们经过了完整的验证,你要使用正确的验证方式。

验证

  • [ ] 在快速用户反馈中使用用户端输入验证,但是永远不要信任它。
  • [ ] 在服务器上使用白名单来验证每一条用户的输入。永远不要直接将用户的内容注入到响应中。永远不要在SQL statement中使用用户输入的内容。

云配置

  • [ ] 确保所有服务只开启了最少的端口。虽然这样做并不能提供高安全房屋,但是使用非标准端口能让攻击者更麻烦一些。
  • [ ] 将后端数据库和服务寄存在私人VPC上,它不会暴露在公共网络上。在配置AWS安全群组时要非常小心,它和VPC都有可能让你在不经意间将服务暴露在公共网络中。
  • [ ] 将逻辑服务隔离在单独的VPC中,使用peer VPC来提供服务内部通信。
  • [ ] 确保所有服务只从最少的IP地址中接受数据。
  • [ ] 严格管理outgoing IP和端口流量,让APT“botification”最少化。
  • [ ]使用AWS IAM,而不要用root证书。
  • [ ] 在所用运营和开发者的操作中使用最少的权限接入。
  • [ ]定时更换密码和access key

基础设施

  • [ ] 确保你能在不经历downtime的情况下进行升级。确保你能够自动升级软件。
  • [ ] 使用Terraform等工具创建所有基础设施,而不是通过云服务控制台。
  • [ ] 所有服务都要使用集中化日志。在访问和取回日志的时候,你不应该需要SSH
  • [ ] 除了一次性诊断,其他时候不要使用SSH进入服务器。过多使用SSH意味着你的重要工作没有完成自动化
  • [ ] AWS服务群组上不要让22端口常开,
  • [ ] 使用Intrusion Detection System来最小化APTs

运营

  • [ ] 关闭未在使用中的服务和服务器。只有断了电的服务器才是最安全的。

测试

  • [ ] 对设计和部署进行审计。
  • [ ] 进行渗透测试,尝试自己黑掉你的网站,你也可以请别人来帮你一起测试。

做好计划

  • [ ] 你要准备好应对机制,别人攻击你时你要如何应对。
  • [ ] 做一个可行的安全事件计划。有一点你会需要它的。

qrcode_for_gh_9de197bcc61b_258.jpg

原文来自:SDK.cn

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 营运车判定查询

    输入车牌号码或车架号,判定是否属于营运车辆。

    输入车牌号码或车架号,判定是否属于营运车辆。

  • 名下车辆数量查询

    根据身份证号码/统一社会信用代码查询名下车辆数量。

    根据身份证号码/统一社会信用代码查询名下车辆数量。

  • 车辆理赔情况查询

    根据身份证号码/社会统一信用代码/车架号/车牌号,查询车辆是否有理赔情况。

    根据身份证号码/社会统一信用代码/车架号/车牌号,查询车辆是否有理赔情况。

  • 车辆过户次数查询

    根据身份证号码/社会统一信用代码/车牌号/车架号,查询车辆的过户次数信息。

    根据身份证号码/社会统一信用代码/车牌号/车架号,查询车辆的过户次数信息。

  • 风险人员分值

    根据姓名和身份证查询风险人员分值。

    根据姓名和身份证查询风险人员分值。

0512-88869195
数 据 驱 动 未 来
Data Drives The Future