ScholarGate
助手

Web应用程序安全

Web应用程序安全解决的是Web软件特有的漏洞——注入、跨站脚本、身份验证失效和访问控制缺陷——这些是现代系统中最常见且影响最大的漏洞。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

Web应用程序安全是保护基于Web的软件及其用户免受利用应用程序对输入、会话、身份验证和访问控制的处理以及浏览器安全模型中弱点的攻击的实践。

Scope

本主题涵盖Web应用程序的威胁模型(不可信客户端、恶意网络、多租户服务器)及其典型的漏洞类别:注入(SQL和命令)、跨站脚本、跨站请求伪造、访问控制和身份验证失效,以及不安全的反序列化。它涵盖了浏览器安全模型(同源策略、内容安全策略)和标准防御措施。它不包括低级内存利用和一般的安全开发过程,这些在相关主题中讨论。

Core questions

  • 为什么将不可信输入与代码或查询混合会产生注入漏洞?
  • 跨站脚本和跨站请求伪造如何攻击网站用户?
  • 浏览器的同源策略如何限制Web代码的功能?
  • Web应用程序中身份验证、会话和访问控制通常是如何失效的?
  • 哪些标准防御措施可以防止最普遍的Web漏洞?

Key concepts

  • SQL和命令注入
  • 跨站脚本 (XSS)
  • 跨站请求伪造 (CSRF)
  • 访问控制失效
  • 身份验证和会话管理失效
  • 同源策略
  • 内容安全策略
  • 参数化查询
  • OWASP Top Ten

Key theories

注入与代码/数据混淆
注入漏洞(SQL注入、命令注入)产生于不可信输入被解释为代码的情况;防御措施是将数据和代码分离,主要通过参数化查询和严格的输出编码实现。
浏览器安全模型和客户端攻击
同源策略隔离了来自不同源的内容,但跨站脚本将攻击者脚本注入到受信任的页面中,而跨站请求伪造则滥用用户的已认证会话;防御措施包括输出编码、内容安全策略和反CSRF令牌。

Mechanisms

当用户输入被拼接到查询中时,就会发生SQL注入,攻击者可以改变其逻辑;参数化查询通过将输入绑定为数据来解决此问题。跨站脚本将脚本注入页面,然后其他用户的浏览器会执行该脚本,通过上下文感知输出编码和内容安全策略来缓解。跨站请求伪造欺骗已认证的浏览器发出不必要的请求,通过反CSRF令牌和SameSite cookie进行防御。当服务器未能对每个请求进行授权检查时,就会出现访问控制缺陷。

Clinical relevance

Web应用程序漏洞导致了许多最大的数据泄露事件:SQL注入和访问控制失效已导致数十亿条记录暴露,跨站脚本经常危及用户账户。由于几乎所有服务都有Web界面,Web安全直接影响电子商务、银行、医疗保健门户和政府系统,并且是渗透测试、漏洞赏金计划和PCI-DSS等合规制度的核心。

Evidence & guidelines

OWASP Top Ten是流行Web风险的实际参考,并辅以OWASP应用程序安全验证标准(ASVS)和备忘单。浏览器强制执行的防御措施(内容安全策略、SameSite cookie、子资源完整性)由W3C和WHATWG标准化。PCI-DSS等合规框架要求处理支付数据的系统必须具备Web安全控制措施。

History

Web应用程序安全随着1990年代末和2000年代动态Web的发展而发展,因为数据库和用户输入产生了注入和脚本漏洞。OWASP Top Ten(首次发布于2003年)标准化了对最关键风险的认识。浏览器端防御措施通过同源策略以及后来的内容安全策略不断演进,而里程碑式的泄露事件反复证明了SQL注入和访问控制失效的实际代价。

Key figures

  • Dafydd Stuttard
  • Ross Anderson
  • Jeremiah Grossman
  • Michal Zalewski

Related topics

Seminal works

  • stuttard2011
  • owasp2021
  • anderson2020

Frequently asked questions

防止SQL注入最有效的单一防御措施是什么?
使用参数化查询(预处理语句),它将SQL结构和用户提供的值分开发送,因此输入永远不会被解释为查询的一部分。这使得代码和数据保持分离,并消除了此类攻击。
跨站脚本与SQL注入有何不同?
两者都源于不可信输入,但SQL注入针对服务器的数据库,而跨站脚本注入恶意脚本,该脚本在其他用户的浏览器中、在受信任的站点内运行。SQL注入窃取或更改服务器数据;XSS劫持用户会话和操作。

Methods for this concept

Related concepts