For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的应用软件被开发推广上线,而本文我们就通过案例分析来简单了解一下,软件开发安全性常见问题与解决方法。
1.失效的访问控制
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
如何防止:
除公有资源外,默认情况下拒绝访问。
使用一次性的访问控制机制,并在整个应用程序中不断重用它们,包括小化CORS使用。
建立访问控制模型以强制执行所有权记录,而不是接受用户创建、读取、更新或删除的任何记录。
域访问控制对每个应用程序都是的,但业务限制要求应由域模型强制执行。
禁用Web服务器目录列表,并确保文件元数据(如:git)不存在于Web的根目录中。
记录失败的访问控制,并在适当时向管理员告警(如:重复故障)。
对API和控制器的访问进行速率限制,以大限度地降低自动化攻击工具的危害。
当用户注销后,服务器上的JWT令牌应失效。
2.安全配置错误
安全配置错误是常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。
如何防止:
一个可以快速且易于部署在另一个锁定环境的可重复的加固过程。开发、质量保证和生产环境都应该进行相同配置,并且,在每个环境中使用不同的密码。这个过程应该是自动化的,以尽量减少安装一个新安全环境的耗费。
搭建小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除或不安装不适用的功能和框架。
检查和修复安全配置项来适应新的安全说明、更新和补丁,并将其作为更新管理过程的一部分。
一个能在组件和用户间提供有效的分离和安全性的分段应用程序架构,包括:分段、容器化和云安全组。
向客户端发送安全指令,如:安全标头。
在所有环境中能够进行正确安全配置和设置的自动化过程。
3.跨站脚本(XSS)
当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建HTML或JavaScript的浏览器API更新现有的网页时,就会出现XSS缺陷。XSS让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
如何防止:
使用设计上就会自动编码来解决XSS问题的框架,如:Ruby3.0或ReactJS。了解每个框架的XSS保护的局限性,并适当地处理未覆盖的用例。
为了避免反射式或存储式的XSS漏洞,好的办法是根据HTML输出的上下文(包括:主体、属性、JavaScript、CSS或URL)对所有不可信的HTTP请求数据进行恰当的转义。
在客户端修改浏览器文档时,为了避免DOMXSS攻击,好的选择是实施上下文敏感数据编码。
使用内容安全策略(CSP)是对抗XSS的深度防御策略。如果不存在可以通过本地文件放置恶意代码的其他漏洞(例如:路径遍历覆盖和允许在网络中传输的易受攻击的库),则该策略是有效的。
4.不安全的反序列化
不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。
如何防止:
执行完整性检查,如:任何序列化对象的数字签名,以防止恶意对象创建或数据篡改。
在创建对象之前强制执行严格的类型约束,因为代码通常被期望成一组可定义的类。绕过这种技术的方法已经被证明,所以完全依赖于它是不可取的。
如果可能,隔离运行那些在低特权环境中反序列化的代码。
记录反序列化的例外情况和失败信息,如:传入的类型不是预期的类型,或者反序列处理引发的例外情况。
限制或监视来自于容器或服务器传入和传出的反序列化网络连接。
监控反序列化,当用户持续进行反序列化时,对用户进行警告。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。