我读过大量的文章,我们需要编写安全的应用程序。从一开始就防御性地编写并实现所有最佳实践安全建议是至关重要的。
我找不到的是建议清单。我知道SQL注入攻击。但还有什么?
非常特别的一个ASP.NET核心6+ Blazor服务器端应用程序,将运行在Azure web服务。并将通过实体框架访问Azure SQL数据库(因此无需担心注入攻击)。
我需要做什么,而不是做,使应用程序尽可能安全?
我知道这不是一件了不起的事情,但仅限于需要解决的合理数量的问题。是的,一个系统中的任何漏洞都是不好的,但我也不想花一年时间在每一个小问题上变得足够精通,从而永远不发货。
最初要求堆栈溢出,它被认为这个网站可能会更好。
发布于 2023-02-10 01:13:43
您本质上要求的是OWASP前十名。这是10个最重要的漏洞类别,您应该在代码库中查找这些漏洞。
这是迄今为止最紧迫的脆弱性类别。通常情况下,端点不需要适当的授权,或者以其他方式提供对资源或功能的访问,攻击者不应该访问这些资源或功能。
这是Nr.1的另一个原因是,这包含了非常、非常广泛的漏洞,如果加以利用,它们通常会产生相当大的影响。
这曾经被称为“敏感数据暴露”,这是通常构成密码失败的结果。例如,通过HTTP下载敏感文档,而不是通过HTTPS下载,或者“自定义加密方案”,它们只是具有静态值的XOR。
SQL注入、XSS和所有其他注入攻击被组合成一个类别,称为“注入攻击”。本质上,任何类型的输入,应用程序比“用户输入”更有意义。
虽然许多应用程序过去都容易受到这种攻击,但许多框架现在都试图在供应商级别解决这个问题,这使得开发人员很难使用不安全的代码。
不安全设计是另一个广泛的范畴,其中的架构作为一个整体存在设计缺陷,例如依赖于“可信赖的客户”。这里没有太多具体的东西要说,因为“安全软件设计”本身就能填满书籍。
这封装了所有的实例,在这些实例中,安全机制已经到位,但没有正确配置。它们要么没有启用,要么配置为不实际阻止任何事情。
一个很好的例子是,它被配置为允许执行内联脚本,从而完全违背了策略的要点。
软件是基于许多组件的。服务它的web服务器,运行它的应用服务器,用于填充字符串的无数JavaScript库等等.
所有这些都可能存在漏洞,一旦发现这些漏洞,就会分发一个带有补丁的新版本。然而,很少有开发人员主动更新他们的组件,特别是如果更新会使新库在某种形式上不兼容的话。
本质上,任何类型的漏洞都允许攻击者冒充另一个用户。这组漏洞过去非常普遍,但是身份和身份验证代码的标准化程度的提高使得这种情况不那么普遍。
一个相当复杂的主题,涉及确保正在处理的数据是预期的。否则,可能会发生恶意副作用。
例如,不受信任数据的反序列化可能导致远程代码执行。
通常情况下,应用程序日志记录不足,由于缺乏监视,恶意行为体可能会被忽略。虽然它本身并不是一个直接的漏洞,但它确实对应用程序的总体安全性构成了风险。
一小组漏洞,其中攻击者可以使用易受攻击的应用程序获取任意资源。
值得注意的是,这是一个由社区投票产生的漏洞,而不是纯粹由数据造成的。
你可能会问,在那之后呢?OWASP WSTG是web应用程序的测试指南,它列出了更深入的漏洞,并为它们进行了测试。
根据应用范围的不同,聘请顾问也是一项值得努力的工作。然而,对于个人项目来说,这是绝对过分的。
全面披露:我在一家公司工作,该公司提供安全问题咨询,包括web应用程序。
https://security.stackexchange.com/questions/268339
复制相似问题