首页
学习
活动
专区
圈层
工具
发布

5个REST API安全准则

只允许需要的动词,其他动词将返回适当的响应代码 ( 例如,禁止一个403)。 (3)保护特权操作和敏感资源集合 并非每个用户都有权访问每个Web服务。...这是至关重要的,因为您不希望Web服务的管理被滥用: https://example.com/admin/exportAllData 这个URL是一个Web服务管理资源,其会话令牌或API密钥应作为...(3)消息完整性 除了HTTPS / TLS,JSON网络令牌(JWT)是一个开放标准( RFC 7519 ),它定义了一个JSON对象参与者之间安全地传送信息的紧凑且自成一体的方式。...403禁止 -当身份验证成功,但身份验证的用户没有权限使用请求的资源。 404未找到 -当请求一个不存在的资源。 405不允许的方法 -意外的HTTP方法的错误检查。...403“禁止”的真正含义未经授权,“我明白您的凭据,但很抱歉,你是不允许的!” 概要 在这篇文章中,介绍了5个RESTful API安全问题和如何解决这些问题的指南。

5K10

让部署更快更安全,GitHub 无密码部署现已上线

假如用户的身份提供者是验证方能够信任的提供者,则可以在称为 ID 令牌的 Json Web 令牌(JWT) 中以声明的形式提供相关用户数据。...使用 GitHub Actions,第一步是在云提供商的身份和访问管理配置中将 GitHub 注册为外部身份源。在执行工作流时,管道可以访问管道唯一运行范围内的 ID 令牌。...令牌包括令牌的期望受众、其持有者的标识符以及其他元数据。 然后,云提供商可以使用该信息来为任何的后续操作颁发短期凭证,例如访问令牌。...目前 GitHub Actions 支持 Hashicorp Vault、亚马逊网络服务、Azure 和谷歌云平台。...尽管反响热烈,但其采用速度似乎比预期的要慢,WhiteDuck DevOps 的咨询与运营主管 Nico Meisenzahl 在推特上写道: 在 #GitHub Actions 中使用 #OIDC 进行云提供商和

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    通过 Nginx 防止网络盗链的方法

    随着网站和应用程序内容的增加,防止未经授权的外部网站或应用程序盗用您的资源变得至关重要。Nginx是一个强大的工具,提供了多种方法来实现防盗链保护。...如果请求的引用来源不在允许的列表中,Nginx将返回403禁止访问的错误。 方法2:使用geo模块 Nginx的geo模块允许您基于客户端的IP地址进行访问控制。...然后,在location块中,我们使用if指令检查这个变量。如果IP地址不在允许的列表中,Nginx将返回403错误。...方法3:使用Token或密钥 生成随机的令牌或密钥,并要求客户端在每个请求中包含有效的令牌或密钥。服务器验证这些令牌或密钥来确认请求的合法性。这种方法提供了更高的安全性,因为令牌或密钥不容易被伪造。...方法5:使用CDN 使用内容分发网络(CDN)可以帮助防止盗链,因为CDN通常提供了一些防盗链功能,如设置白名单和黑名单。 方法6:加密和数字签名 对资源进行加密并使用数字签名来验证其完整性和合法性。

    1.9K20

    Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置

    让 Nginx 当「中间人」,外部只知道 Nginx 的地址,真实服务器 IP 藏得严严实实,安心摸鱼不怕被抓包!...;  # 非法引用返回403错误        }    }    # 动态请求(如登录接口)还是转发给后端    location /api/ {        proxy_pass http://backend_servers...请求频率限制:单个IP每秒最多5个请求(令牌桶算法)    limit_req_zone $binary_remote_addr zone=ip_req:10m rate=5r/s;  # 每秒生成5个令牌...黑白名单:定义允许/禁止访问的IP段    set$allow_ip"192.168.1.0/24";  # 允许访问的内网IP段    deny 10.0.0.1;  # 单独禁止某个IP}server...~* $allow_ip) {  # 如果IP不在允许列表            return 403;  # 禁止访问        }        proxy_pass http://backend_servers

    35720

    网络请求 403 :未通过浏览器 TLS JA3 指纹的验证

    未通过浏览器 TLS/JA3 指纹的验证在一次使用 python requests库 访问某个地址时,返回了 403 错误,起初以为是 IP 被加入了黑名单,但经过测试后发现,切换 IP 后仍然返回 403...测试过程中偶然发现浏览器和 postman 可以正常访问,经过搜索资料知道,大概率是因为没有通过 浏览器 TLS/JA3 指纹的验证 被识别为爬虫,从而被禁止访问,可以通过以下三种常用方式解决。...="chrome101")print(res.text)什么是 403 错误在我们使用互联网浏览网站或进行网络请求时,有时会遇到一个称为“403 Forbidden”错误。...造成 403 可能的原因未授权的第三方访问某些API和资源可能要求特定的API密钥或认证令牌,如果未提供或提供错误,则会返回403错误。目录浏览被禁用服务器配置禁止了目录浏览。...如果请求的URL指向一个目录而不是具体文件,并且目录浏览被禁用,也会返回403错误。黑名单和白名单设置服务器可能使用黑名单或白名单来控制访问。请求的来源可能在黑名单上,因此被拒绝访问。

    76020

    VoidProxy平台对多因素认证的绕过机制与防御对策研究

    ,即使用户登出仍有效;Access Token:短期有效(通常1小时),但可用于调用Microsoft Graph API。...VoidProxy的成功暴露了以下根本性问题:MFA验证与会话绑定脱节:MFA仅在认证时刻验证用户身份,但生成的会话令牌本身不绑定设备、IP或浏览器上下文。一旦令牌泄露,任何持有者均可冒充合法用户。...(三)浏览器内令牌绑定(DPoP)推动SaaS供应商支持OAuth 2.0 DPoP规范。DPoP要求客户端在每次API请求中附带一个由私钥签名的证明令牌,该私钥与TLS连接绑定。...前端实现示例(使用Web Crypto API):// 生成DPoP Proof(简化)async function generateDPoPProof(accessToken, method, url...例如,欧盟NIS2指令已要求关键实体实施“强客户认证”(SCA),未来或明确禁止长期有效的非绑定刷新令牌。六、结语VoidProxy平台揭示了当前MFA部署模型在面对实时会话劫持时的根本性不足。

    21310

    Hack the box_Wall

    利用gobuster扫描web ->gobuster dir -w /usr/share/wordlists/dirb/common.txt -u http://10.10.10.157 ->/.hta...centreon系统(Centreon是一个网络,系统,应用程序监督和监视工具)登陆处有一个csrf令牌验证,每次访问都会更改 ?...在官网中得知,我们访问/api/index.php?action=authenticate,并且提供登录登录信息,将可以绕过令牌校验,从而达到爆破目的 ?...低权限shell 该系统存在CVE-2019-13024漏洞,不过当我使用poc尝试攻击时,发现poc用不了,payload有一个过滤处响应403 后来我发现了CVE-2019-17501,这个要简单一点在...权限提升 在使用自动化脚本枚举系统信息中发现系统中有一个不常见的suid二进制文件: /bin/screen-4.5.0 ? 使用poc获得root权限 ?

    81110

    Jepsen对etcd 3.4.3测试的最新结果

    他们首次测试etcd是在0.4.1版本(五年前),从那时起我们就一直使用这些发现来改进我们的一致性。...在它的API中,etcd支持多键事务,但是采用了简单的事务模型来保持系统更容易理解。 2....具体来说,etcd锁只在etcd自己的密钥空间和带有修订检查的事务中安全地保证互斥。当访问依赖于时间的外部资源时,它提供了较弱的保证。...使用分布式锁很难防止死锁和锁定失效,因为分布式锁不能保护同一进程甚至同一机器中的资源。为了解决这个问题,分布式锁通常依赖于租约和心跳机制来检测断开连接的锁持有者并使锁失效。...当一个锁持有者断开连接或在没有使用修订检查(etcd中的隔离令牌实现)的情况下暂停时,它可能会与新的锁持有者同时访问受保护的资源。更多细节可以在Kleppmann的博客中找到。

    1.3K10

    OAuth2.0 OpenID Connect 一

    借助 OIDC,您可以使用受信任的外部提供商向给定应用程序证明您就是您所说的那个人,而无需授予该应用程序访问您的凭据的权限。 OAuth 2.0 将很多细节留给了实施者。...ID 令牌必须是 JSON Web 令牌 (JWT)。由于规范规定了令牌格式,因此可以更轻松地跨实现使用令牌。...考虑因素包括应用程序的类型(如基于 Web 或本机移动应用程序)、您希望如何验证令牌(在应用程序中或在后端)以及您希望如何访问其他身份信息(进行另一个 API 调用或拥有它直接编码成令牌)。...签名的 JWT 在应用程序开发中特别有用,因为您可以高度确信编码到 JWT 中的信息未被篡改。通过在应用程序中验证 JWT,您可以避免到 API 服务的另一次往返。...许多 OIDC 实施者也会将 JWT 用于访问和刷新令牌,但这不是由规范规定的。 Access Token 访问令牌用作不记名令牌。持有者令牌意味着持有者无需进一步识别即可访问授权资源。

    1.9K30

    状态码在后端开发中常常遇到的场景

    Spring Cloud Gateway:使用path谓语和rewritePath过滤器实现URL重写,返回301状态码。...Spring Security:当用户未登录或令牌无效时,Spring Security返回401状态码。 5. 403 Forbidden - 禁止访问 场景:服务器理解请求但拒绝执行。...Nginx:在权限控制中,如果用户没有访问权限,Nginx返回403状态码。 6. 404 Not Found - 未找到 场景:服务器无法找到请求的资源。...Nginx:当Nginx作为Web服务器正在处理请求,但客户端在响应发送前断开了连接,Nginx可能会记录499状态码。这种情况可能由网络问题、客户端程序错误或客户端机器故障引起。...当用户未登录或令牌无效时返回。 - 403 Forbidden,禁止访问。 - 在权限控制中,如果用户没有访问权限返回。 404 Not Found,未找到。 - 服务器无法找到请求的资源时返回。

    99110

    Flask中的JWT认证构建安全的用户身份验证系统

    随着Web应用程序的发展,用户身份验证和授权变得至关重要。JSON Web Token(JWT)是一种流行的身份验证方法,它允许在网络应用程序之间安全地传输信息。...在Python领域中,Flask是一种流行的Web框架,它提供了许多工具来简化JWT身份验证的实现。在本文中,我们将探讨如何使用Flask和JWT构建一个安全的用户身份验证系统。..., 403在这个示例中,我们使用了一个额外的路由/refresh_token来接受一个旧的JWT令牌,并使用相同的用户信息生成一个新的令牌。...这使得JWT非常适合于构建无状态的API,减轻了服务器的负担,并使得应用程序更易于扩展。...令牌刷新:实现令牌刷新机制,以允许用户在令牌过期前获取新的令牌。日志和监控:添加日志记录和监控功能,以便跟踪和分析用户活动和身份验证请求。

    1.5K10

    Django Rest Framework-介绍

    API,满足各种需要 可扩展性,插件丰富 广泛使用,文档丰富 RESTful API资料 RESTfulAPI设计指南 理解RESTful架构 RESTful API设计 API与用户的通信协议,...总是使用HTTPS协议。...域名 https://api.example.com 尽量将API部署在专用域名(会存在跨域问题) https://example.org/api/ API很简单 版本 URL,如:https://...api.example.com/v1/ 请求头 跨域时,引发发送多次请求 路径,视网络上任何东西都是资源,均使用名词表示(可复数) https://api.example.com/v1/zoos https...401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

    2.1K40

    【K8S专栏】Kubernetes权限管理

    不记名令牌 当使用不记名令牌(Bearer token)来对某 HTTP 客户端执行身份认证时,API 服务器希望看到一个名为 Authorization 的 HTTP 头,其值格式为 Bearer。...例如:如果持有者令牌为 31ada4fd-adec-460c-809a-9e56ceb75269,则其出现在 HTTP 头部时如下所示: Authorization: Bearer 31ada4fd-adec...-460c-809a-9e56ceb75269 在 Kubernetes 中,主要有以下几种使用不记名令牌(Bearer token)的方法: Static Token File(静态令牌) Service...Account Tokens(服务账号令牌) OpenID Connect Tokens(OIDC 令牌) Static Token File 当使用静态令牌的时候,API Server 会通过--token-auth-file...当然,Service Account Token 除了用在 Pod 上,在外部也可以使用,在《Kubernetes 集群管理》中的集群安装章节,有介绍使用 Token 访问 Kubernetes Dashboard

    1.3K20

    六种Web身份验证方法比较和Flask示例代码

    用户使用有效凭据进行身份验证,服务器返回签名令牌。此令牌可用于后续请求。 最常用的令牌是 JSON Web 令牌 (JWT)。...但只有真实用户才能生成有效的签名令牌。令牌使用签名进行身份验证,签名是使用私钥签名的。. JSON Web 令牌 (JWT) 是一种紧凑的 URL 安全方法,用于表示要在双方之间传输的声明。...- IETF 令牌不需要保存在服务器端。只需使用其签名即可对其进行验证。最近,由于RESTful API和单页应用程序(SPA)的兴起,令牌采用率有所增加。 流程 优点 它是无状态的。...:带密码(和哈希)的 OAuth2,带 JWT 令牌的持有者 代码 您可以使用 Flask-Dance 实现 GitHub 社交身份验证。...Django-allauth Tutorial FastAPI — Google 作为外部身份验证提供商 结论 在本文中,我们研究了许多不同的Web身份验证方法,所有这些方法都有自己的优点和缺点。

    10.9K40

    Go 语言安全编程系列(一):CSRF 攻击防护

    1、工作原理 在 Go Web 编程中,我们可以基于第三方 gorilla/csrf 包避免 CSRF 攻击,和 Laravel 框架一样,这也是一个基于 HTTP 中间件避免 CSRF 攻击的解决方案...HTML 表单 首先是 HTML 表单,csrf.Protect 中间件使用起来非常简单,你只需要在启动 Web 服务器时将其应用到路由器上即可,然后在渲染表单视图时传递带有令牌信息的 csrf.TemplateField...提交表单,就会返回 403 响应了: 错误信息是 CSRF 令牌值无效。...:= r.PathPrefix("/api").Subrouter() // 在子路由上应用 csrf.Protect 中间件 api.Use(csrf.Protect([]byte(.../api/user/1 接口,就可以获取如下响应信息: 这样一来,我们就可以在客户端读取响应头中的 CSRF 令牌信息了,以 Axios 库为例,客户端可以这样发送包含 CSRF 令牌的 POST 请求

    5.1K41

    供应链系统前端安全防护:XSS、CSRF与JWT攻防实战

    本文将详细记录使用AI协作开发的真实过程,展示AI工具在项目开发、代码优化和安全问题排查中的实际应用,分享如何通过人机协作构建坚固的前端安全防护体系。...五、JWT安全实战5.1 协作目标与AI协助JWT(JSON Web Token)在供应链系统中用于身份验证和API授权,不安全的实现可能导致身份伪造或权限提升。...issuer: 'supply-chain-api', audience: 'supply-chain-web', jwtid: crypto.randomUUID()..., { expiresIn: '7d', // 长期刷新令牌 issuer: 'supply-chain-api', audience: 'supply-chain-web...(访问令牌+刷新令牌)使用不同的密钥和有效期增强安全性实现令牌黑名单支持注销功能设计思路:短期访问令牌减少泄露风险长期刷新令牌支持用户体验黑名单机制处理令牌注销需求重点逻辑:使用不同的密钥签署访问和刷新令牌为每个令牌生成唯一

    41020

    程序员入职避免挨骂小知识-RESTful风格

    、RESTful风格API 4.2.1、网络上的所有事物都被抽象为资源** 4.2.2、资源状态转换 4.2.3、使用统一接口 4.2.4、举例 4.2.5、总结 五、HTTP常见的响应状态码 六、常用注解...应用接口:很多情况下,需要把系统的功能作为服务暴露给外部的其他应用使用,就需要把系统中的服务作为API接口暴露出去,一般分为公共接口(发短信,天气服务)和私用接口(公司内部使用的)。 ?...使用这些技术,可以提供更加丰富的动态内容。 瘦客户端应用阶段:在这个阶段,在服务器端出现了独立于 Web 服务器的应用服务器。...4.2、RESTful风格API     RESTful风格API大约遵循三点 4.2.1、网络上的所有事物都被抽象为资源**     每个资源都有一个唯一的资源定位符(URI)。...401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

    83830

    Django Rest Framewor

    设计规范 API与用户的通信协议,建议使用HTTPs协议。...路径,视网络上任何东西都是资源,均使用名词表示(可复数) https://api.example.com/v1/zoos https://api.example.com/v1/animals https...://api.example.com/v1/employees method GET      :从服务器取出资源(一项或多项) POST    :在服务器新建一个资源 PUT      :在服务器更新资源...(客户端提供改变后的完整资源) PATCH  :在服务器更新资源(客户端提供改变的属性) DELETE :从服务器删除资源 过滤,通过在url上传参的形式传递搜索条件 https://api.example.com...401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

    1.8K20

    网站HTTP错误状态代码及其代表的意思总汇

    401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。 403 禁止访问:访问被拒绝。 403.1 禁止访问:执行访问被拒绝。 403.2 禁止访问:读取访问被拒绝。...403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。 403.13 禁止访问:客户端证书已在 Web 服务器上吊销。 403.14 禁止访问:在 Web 服务器上已拒绝目录列表。...407 Web 服务器需要初始的代理验证。 410 文件已删除。 412 客户端设置的前提条件在 Web 服务器上评估时失败。 414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。...@ 命令只可以在 Active Server Page 中使用一次。 0142 线程令牌错误。无法打开线程令牌。 0143 应用程序名无效。未找到有效的应用程序名称。 0144 初始化错误。...0188 禁止的对象使用。无法将用对象标记创建的对象添加到会话内部。 0189 禁止的对象使用。无法将用对象标记创建的对象添加到应用程序内部。 0190 意外错误。释放外部对象时发生可捕获错误。

    8.3K20
    领券