参数无效 如果一个或多个参数无效,例如缺少所需的值或参数response_type错误,服务器将重定向到重定向 URL 并包括描述问题的查询字符串参数。...error 参数的其他可能值是: invalid_request: 请求缺少必需的参数,包括无效的参数值,或者格式不正确。 unauthorized_client: 客户端无权使用此方法请求授权码。...invalid_scope: 请求的范围无效、未知或格式错误。 server_error: 授权服务器遇到意外情况,无法满足请求。...用户体验与注意事项 为了确保授权码授予的安全,授权页面必须出现在用户熟悉的 Web 浏览器中,不得嵌入 iframe 弹出窗口或移动应用程序的嵌入式浏览器中。...如果应用程序想要使用授权码授予但不能保护其秘密(即本机移动应用程序或单页 JavaScript 应用程序),则在发出请求以交换授权码以获取访问令牌时不需要客户端秘密,并且还必须使用 PKCE。
刷新令牌由授权服务器颁发给客户端,如果当前的访问令牌无效或者过期时,获取一个新的访问令牌;或者强制再请求一个访问令牌(可能相同或更窄范围的访问令牌)。...另一方面,动态发布的凭据(如访问令牌或刷新令牌)可以收到可接受的保护级别。至少,这些凭据被保护免受应用程序可能交互的恶意服务器的保护。...invalid_request(无效请求):请求缺少所需的参数,包括无效的参数值,其中包含一次以上的参数,或者是其他格式错误的。 ...invalid_scope(无效的请求范围):请求的范围无效、未知或格式错误。 ...invalid_request(无效请求):请求缺少所需的参数,包括无效的参数值,其中包含一次以上的参数,或者是其他格式错误的。
这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本。 运行预期之外的脚本带来的后果有很多中,可能只是简单的恶作剧——一个关不掉的窗口: ?...这种做法的初衷也是防范 XSS,多多少少都起了一些作用,但不是总是有用,正如上面的注入代码,用 iframe 也一样可以达到相同的目的。...对于发布帖子这一类创建资源的操作,应该只接受 POST 请求,而 GET 请求应该只浏览而不改变服务器端资源。...原则上来说,每个页面的请求令牌都应该放在独立的 Session Key 中。我们在设计服务器端的时候,可以稍加封装,编写一个令牌工具包,将页面的标识作为 Session 中保存令牌的键。...如下也列出一些据说能有效防范 CSRF,其实效果甚微的方式甚至无效的做法。
406 客户端浏览器不接受所请求页面的 MIME 类型。 407 Web 服务器需要初始的代理验证。 410 文件已删除。 412 客户端设置的前提条件在 Web 服务器上评估时失败。...对象块缺少对象结束标记 () 或标记结束符号 (>)。 0119 Classid 或 Progid 属性丢失。...0142 线程令牌错误。无法打开线程令牌。 0143 应用程序名无效。未找到有效的应用程序名称。 0144 初始化错误。初始化时页级别的对象列表失败。 0145 新应用程序失败。...0201 默认脚本语言无效。为此应用程序指定的默认脚本语言无效。 0202 代码页丢失。代码页属性丢失。 0203 代码页无效。指定的代码页属性无效。 0204 CodePage 值无效。...使用 Request.Form 集合或 Request.BinaryRead 后无法在 Request 对象上使用 IStream。 0250 默认代码页无效。为此应用程序指定的默认代码页无效。
c.利用 iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。...因为请求令牌的方法在理论上是可破解的,破解方式是解析来源页面的文本,获取令牌内容。如果全局使用一个 Session Key,那么危险系数会上升。...原则上来说,每个页面的请求令牌都应该放在独立的 Session Key 中。我们在设计服务器端的时候,可以稍加封装,编写一个令牌工具包,将页面的标识作为 Session 中保存令牌的键。...如下也列出一些据说能有效防范 CSRF,其实效果甚微或甚至无效的做法: a.通过 referer 判定来源页面:referer 是在 HTTP Request Head 里面的,也就是由请求的发送者决定的...但我觉得性价比不如令牌。 b.过滤所有用户发布的链接:这个是最无效的做法,因为首先攻击者不一定要从站内发起请求(上面提到过了),而且就算从站内发起请求,途径也远远不知链接一条。
二、授权流因用例不同而异 OAuth规范接受多种获取和验证令牌的方法,但并不是所有流对所有类型的客户端都是普适的。OAuth规范定义了公共和私有客户端,这种划分,取决于客户端安全存储其凭据的能力。...相反,辅助令牌流定义了与隐式流类似的流程,不同的是,使用iFrame和postMessage作为通讯的方式。...在这里阅读更多:《辅助令牌流:单页应用程序中OAuth集成的答案》(http://t.cn/EwtoblI) 白小白: 单页面应用的最显著特征是页面本身在初次加载后是不进行页面的刷新的,因此无法完成一个向授权服务器的的重定向来获得令牌...,辅助令牌流的解决方案就是将代码流和隐式流等相关处理嵌入一个iFrame中进行(在我看来,这种流程才应该叫隐式流,狗头表情参见)。...撤销刷新令牌将使刷新令牌无效,并使其附带的任何活动的访问令牌无效。 使用经过身份验证的调用执行实际的撤销操作,这一过程由客户端完成。经过身份验证,公共客户端也可以执行撤销。
对于发布帖子这一类创建资源的操作,应该只接受 POST 请求,而 GET 请求应该只浏览而不改变服务器端资源。...因为请求令牌的方法在理论上是可破解的,破解方式是解析来源页面的文本,获取令牌内容。如果全局使用一个 Session Key,那么危险系数会上升。...原则上来说,每个页面的请求令牌都应该放在独立的 Session Key 中。我们在设计服务器端的时候,可以稍加封装,编写一个令牌工具包,将页面的标识作为 Session 中保存令牌的键。...如下也列出一些据说能有效防范 CSRF,其实效果甚微的方式甚至无效的做法。...但我觉得性价比不如令牌。 过滤所有用户发布的链接:这个是最无效的做法,因为首先攻击者不一定要从站内发起请求(上面提到过了),而且就算从站内发起请求,途径也远远不知链接一条。比如 <img src=".
我喜欢使用这些状态码: 对于数据错误 400:请求信息不完整或无法解析。 422:请求信息完整,但无效。 404:资源不存在。 409:资源冲突。...我们希望让客户端应用程序能够阻止任何无效的电子邮件或密码太短的请求,但外部人员可以像我们的客户端应用程序一样在需要的时候直接访问API。 如果email字段丢失,则返回400。...但是,如果API希望签订一个不同的“密钥”,JWT就会被取消,但是这将使所有当前发出的令牌全部无效,但因为这些令牌是短生命期的,所以这并没有关系。...如果校验失败,则认为是一个无效的令牌。...“下一页”令牌 如果每页20个结果之外还有其他的结果,谷歌的Places API就会在响应中返回next_page_token。
错误响应 如果终端用户拒绝了访问请求,或者由于除了缺少或无效重定向URI之外的其它原因而导致请求失败, error_description 可选参数。...错误响应 如果终端用户拒绝了访问请求,或者由于除了缺少或无效重定向URI之外的其它原因而导致请求失败, error 错误码 invalid_request 请求缺少某个必需参数,包含一个不支持的参数或参数值...invalid_grant 提供的访问许可是无效的、过期的或已撤销的(例如,无效的断言,过期的授权令牌,错误的终端用户密码证书,或者不匹配的授权码和重定向URI)。...错误响应 如果终端用户拒绝了访问请求,或者由于除了缺少或无效重定向URI之外的其它原因而导致请求失败, error_description 可选参数。...其实OAuth2在设计之初是已经做了很多安全方面的考虑,并且在RFC6749中加入了一些安全方面的规范指导。
不成功的响应 如果访问令牌请求无效,例如重定向 URL 与授权期间使用的不匹配,则服务器需要返回错误响应。...invalid_request– 请求缺少参数,因此服务器无法继续请求。如果请求包含不受支持的参数或重复参数,也可能会返回此信息。...invalid_client– 客户端身份验证失败,例如请求包含无效的客户端 ID 或密码。在这种情况下发送 HTTP 401 响应。...invalid_grant– 授权代码(或密码授予类型的用户密码)无效或已过期。如果授权授予中提供的重定向 URL 与此访问令牌请求中提供的 URL 不匹配,这也是您将返回的错误。...invalid_scope– 对于包含范围(密码或 client_credentials 授权)的访问令牌请求,此错误表示请求中的范围值无效。
无论您是否直接导航到该域,如果浏览器只是从该域加载资源(即图像),向其发送 POST 请求或将其中的一部分嵌入到 iframe 中。...如果您有一个单页面 Web 应用程序 (SPA),它针对托管在不同域上的身份提供者(IdP,例如 IdentityServer 4[6])进行身份验证,并且该应用程序使用所谓的静默令牌刷新,您就会受到影响...在这种情况下,应用程序会创建一个用户不可见的 iframe,并在该 iframe 中再次启动身份验证过程。...IdP 的网站在 iframe 中加载,如果浏览器沿 IdP 发送会话 cookie,则识别用户并发出新令牌。 现在 iframe 存在于托管在应用程序域中的 SPA 中,其内容来自 IdP 域。...当 Safari 遇到无效值时,它会将 SameSite=Strict 当作已指定的设置,并且不会将会话 cookie 发送到 IdP。
信息收集:手动浏览站点 用于查找丢失或隐藏内容的爬行器 检查是否存在公开内容的文件,如robots.txt、sitemap.xml、.DS_Store检查主要搜索引擎的缓存中是否存在可公开访问的站点 检查基于用户代理的内容差异...识别所有主机名和端口 识别第三方托管的内容 配置管理: 检查常用的应用程序和管理URL 检查旧文件、备份文件和未引用文件 检查支持的HTTP方法和跨站点跟踪(XST) 测试文件扩展名处理 测试安全HTTP...、URL中的令牌) 检查会话令牌的cookie标志(httpOnly和secure) 检查会话cookie作用域(路径和域) 检查会话cookie持续时间(过期和最长期限) 在最长生存期后检查会话终止...CSRF和clickjacking测试 Authorization: 路径遍历测试 绕过授权架构的测试 垂直访问控制问题测试(又称权限提升) 水平访问控制问题测试(在相同权限级别的两个用户之间) 缺少授权的测试...走私测试 HTTP动词篡改测试 开放重定向测试 本地文件包含测试 远程文件包含测试 比较客户端和服务器端验证规则 NoSQL注射试验 HTTP参数污染测试 自动绑定测试 质量分配测试 测试是否存在空/无效的会话
通过添加 API 网关并使用 OAuth 或 OpenID Connect 基于访问令牌进行授权,您可以缓解许多主要的 API 安全风险。...因此,不要将本文视为一个全面的指南,而是一个关于从哪里开始的启发。如果您考虑以下两个要点,您将为您的 API 安全奠定良好的基础: 使用 API 网关。 使用访问令牌进行授权。...为此,请使用 OAuth 或 OpenID Connect 等协议。这两种协议都允许您在 访问令牌 的帮助下委托对 API 的访问,同时保持信任管理集中。 2....它应该拒绝任何明显格式错误的请求,例如缺少访问令牌或包含无效令牌时。无效令牌也可以是 范围 不适合请求的令牌。JWT 安全最佳实践 包括以下内容: 始终验证访问令牌。...例如,实施和结合最佳实践模式,例如保护隐私的 幽灵令牌模式 或 令牌处理程序模式,用于基于浏览器的应用程序。您只需要一个 API 网关和访问令牌进行授权即可开始。
ASP.NET Core 中包含管理身份验证、授权、数据保护、SSL 强制、应用机密、请求防伪保护及 CORS 管理等等安全方面的处理。...在ASP.NET Core MVC 2.0或更高版本中,FormTagHelper为HTML表单元素注入防伪造令牌。...如果服务器收到与经过身份验证的用户的标识不匹配的令牌,将拒绝请求。 该令牌唯一且不可预测。 该令牌还可用于确保正确序列化的一系列的请求 (例如,确保请求序列的: 第 1 页–第 2 页–第 3 页)。...所有在ASP.NET Core MVC 和 Razor 页模板中的表单都会生成 antiforgery 令牌。...需要防伪验证 ValidateAntiForgeryToken实质上是一个过滤器,可应用到单个操作,控制器或全局范围内。
用户身份验证通常必须在浏览器中进行,而不是在网络防火墙后面的受保护服务器中进行。 此外,SPA 通常依赖于大量与应用程序 通过 API 连接 的第三方数据。大量第三方连接会造成双重问题。...例如,使用 OAuth 流来使用 OAuth 令牌而不是会话 Cookie 身份验证用户或 API 访问似乎是缓解 XSS 攻击的好方法。...在此设置中,作为后端组件托管的 OAuth 代理位于 SPA 和授权服务器之间。...托管在高性能 API 网关中的 OAuth 代理位于 SPA 和 API 之间,并将 Cookie 转换为访问令牌。这样,令牌永远不会到达 SPA,在那里它们可能会被威胁行为者窃取。...令牌处理程序模式使组织能够自信地使用 SPA,而不会引入新的安全漏洞。这种架构是保护 SPA 免遭未经授权或恶意访问的令人欢迎的演变。
若要调用 Key Vault,请授予代码对 Key Vault 中特定机密或密钥的访问权限。...API 版本参数指定 IMDS 版本,请使用 api-version=2018-02-01 或更高版本。...请使用 api-version=2018-02-01 或指定更高的版本。 调用了 Azure AD,以便使用在步骤 3 中配置的客户端 ID 和证书请求访问令牌(在步骤 5 中指定)。...将需要 Key Vault 的 URL,该 URL 位于 Key Vault 的“概述” 页的“软件包” 部分。...另外,还需要在前面的调用中获取的访问令牌 curl https:///secrets/?
授权服务器应该让开发人员了解网络钓鱼Attack的风险,并可以采取措施防止页面嵌入本机应用程序或 iframe 中。...Attacker的网页堆叠在 iframe 下面,并且有一些看起来无害的按钮或链接,非常小心地放置在授权服务器的确认按钮的正下方。...如果授权服务器不验证重定向 URL,并且Attacker使用“令牌”响应类型,则用户将返回到Attacker的应用程序,URL 中包含访问令牌。...无论这最终是否被用于窃取授权码或访问令牌,这也是一种危险,因为它可用于发起其他不相关的Attack。...由于这有时会成为开发过程中的负担,因此在应用程序“开发中”时允许非 https 重定向 URL 并且只能由开发人员访问,然后要求将重定向 URL 更改为 https 也是可以接受的应用程序发布并可供其他用户使用之前的
网关(Gateway)是微服务中不可缺少的一部分,它是微服务中提供了统一访问地址的组件,充当了客户端和内部微服务之间的中介。...限流是一种流量控制的策略,用于限制系统处理请求的速率或数量,以保护系统免受过载或攻击的影响。通过限制请求的数量或速率,可以平衡系统和资源之间的压力,确保系统在可接受的范围内运行。...限流的常见策略通常有以下几种: 请求速率限流:限制单位时间内系统可以接受的最大请求数量。例如,每秒最多处理 100 个请求。当请求超过限制时,可以选择拒绝或延迟处理这些请求。...Cloud Gateway 配合 Redis 实现限流的时候,它对于 Redis 的版本是有要求的,因为它在限流时调用了一个 Redis 高版本的函数,所以 Redis Server 版本太低,限流无效...如果有可用的令牌,则请求会被放行,令牌桶中的令牌数量减少;如果没有可用的令牌,则请求会被阻塞或拒绝。 令牌桶填充:限流器会定期填充令牌桶,即向令牌桶中添加新的令牌。
当访问/修改托管资源状态(保存到数据库或存储中)的后端系统中的数据时。 REST框架中的分层转换序列意味着链中的一个薄弱环节可能使应用程序变得脆弱。 7大REST API安全威胁 1....DoS 攻击 在拒绝服务(DoS)攻击中,攻击者在大多数情况下会推送大量请求服务器或网络的消息,以建立由无效返回地址组成的请求。...即使禁用了用于应用程序身份验证的API密钥(或访问令牌),也可以通过标准浏览器请求轻松地重新获取密钥。因此,使当前的访问令牌无效不是一个长期的解决方案。...打破身份验证 这些特定的问题可能使攻击者绕过或控制web程序使用的身份验证方法。缺少或不充分的身份验证可能导致攻击,从而危及JSON web令牌、API密钥、密码等。...缺少或不充分的访问控制可以使攻击者获得对其他用户帐户的控制、更改访问权限、更改数据等。 当开发人员没有正确配置操作级可访问性,从而导致访问漏洞时,公司应用程序访问往往会受到攻击。
网关(Gateway)是微服务中不可缺少的一部分,它是微服务中提供了统一访问地址的组件,充当了客户端和内部微服务之间的中介。...限流是一种流量控制的策略,用于限制系统处理请求的速率或数量,以保护系统免受过载或攻击的影响。通过限制请求的数量或速率,可以平衡系统和资源之间的压力,确保系统在可接受的范围内运行。...限流的常见策略通常有以下几种:请求速率限流:限制单位时间内系统可以接受的最大请求数量。例如,每秒最多处理 100 个请求。当请求超过限制时,可以选择拒绝或延迟处理这些请求。...Cloud Gateway 配合 Redis 实现限流的时候,它对于 Redis 的版本是有要求的,因为它在限流时调用了一个 Redis 高版本的函数,所以 Redis Server 版本太低,限流无效...如果有可用的令牌,则请求会被放行,令牌桶中的令牌数量减少;如果没有可用的令牌,则请求会被阻塞或拒绝。 令牌桶填充:限流器会定期填充令牌桶,即向令牌桶中添加新的令牌。
领取专属 10元无门槛券
手把手带您无忧上云