Cross Site Request Forgery是一种利用网站对用户浏览器的信任的恶意攻击。
如何设置CORS和RequestMatchers以避免在SpringBoot 3.3中出现403禁止
我创建了一个非常简单的 SpringBoot 应用程序(几乎是一个 CRUD)并为用户添加了 JWT 身份验证。这些请求都经过邮递员测试,并且工作正常并且无需在云中即可与数据库交互
我目前正在编写一个Java jenkins插件,我面临着订书机和Java-Javascript方法绑定的问题。 我的 java 文件包含一个方法,当按钮为
如果我们实现了基于 JWT 的身份验证和授权,代码中是否仍然需要 CSRF 令牌?
如何将 django csrf 令牌直接嵌入到 HTML 中?
有没有办法直接从我正在编辑的Python文件中插入csrf令牌?每个会话的令牌都不同,因此将其存储在数据库中并不是很有用。有没有办法
有没有办法直接获取我视图中的csrftoken?
为什么我们需要 csrftoken cookie 和 HTML 表单的隐藏输入的 csrfmiddlewaretoken 值?
我正在尝试了解安全性。我很好奇为什么在 Django 中提交表单(POST)时,有 2 个单独的元素包含相同的 csrf 令牌值: csrftoken cookie:{'
在 Windows 上运行 Docker 映像时出现错误 403,但可以在 RHEL8 上运行
我有一个用 Django 制作的 Web 应用程序,我构建它并在 Linux Redhat 8 中运行它,它运行良好。 尝试使用 Docker 在 Windows 上运行它允许我进入网页,但我无法登录,我只是......
尝试向 Django 视图发出发布请求时出现错误:禁止(未设置 CSRF cookie。)
我正在尝试创建一个(chrome 扩展 + Django)密码管理器,它将从表单中读取输入框,然后单击“提交”,它将向 Django 视图发出 POST 请求,其中包含的数据......
我已经使用 Spring Boot 实现了 CSRF 保护,下面是它的工作原理:- 第一次使用基本身份验证对用户进行身份验证。并在 cookie 中提供 jsession id 和 xsrf-token。 现在这个代币已经可用了...
如果 Spring Security 在服务器级别实现了同源策略,为什么连接到 websocket 时需要 CSRF 保护?
根据 Spring Security 文档,对于 Websocket,在服务器级别实现了 SOP,这与浏览器实现 SOP 的常规 http 相反。然而,Spring Security 还需要...
我使用了下面的代码,它也有csrf。但是我怎样才能禁用它的csrf呢?我搜索并在登录表单上禁用 CSRF 令牌没有帮助,因为在下面的例子中没有使用 createFormBuilder() ,s...
Django 附带 CSRF 保护中间件,它会生成一个唯一的每个会话令牌以在表单中使用。它会扫描所有传入的 POST 请求以获取正确的令牌,如果...
尝试登录 django-allauth headless 和 NextJS+NextAuth 时未设置 CSRF Cookie
我一直在学习 Django,并尝试从标准模板迁移到 Django Rest Framework 支持的单独 NextJS 前端。 我在后端实现了 Django-allauth(无头)...
我认为,如果你给我一段与 Laravel 页面相关的错误描述,我现在可以告诉你这个问题的作者姓名和准确的发布日期。
laravel 回调时 get 方法或网关链接(标签)419 过期错误
默认情况下,当使用 post 或 get 方法或链接(标签)从银行网关输入或回调时,Laravel 中会显示错误 419。当我更改会话文件时,问题就解决了...
SPA + 存储 JWT + REST API 不接受 cookie 身份验证
每个人都在谈论不要将 jwt 存储在本地存储中以确保在线安全。 但事实上,我使用 SPA + Rest API 集成的项目都不是使用 ...
最近,我了解到每次请求都会自动发送cookie。这种行为使得一些网站容易受到 CSRF 的攻击。据我所知,可以通过使用 CSRF 来防止 CSRF
未设置 Django CSRF cookie,webhook URL 出现 403 错误
我在尝试处理本地主机上的 Stripe webhooks 时遇到了 Django 的 CSRF 保护问题。我收到 403 Forbidden 错误,并显示消息“CSRF cookie not set.&qu...
next-auth 5.0.0-beta.18 使用凭据登录错误=缺少CSRF
我有一个最小的设置,如“next-auth”文档中所解释的:“^5.0.0-beta.18”。当从主页http://localhost:3000/调用signIn()时, ./app/page.tsx 我有一个最小的设置,如 "next-auth": "^5.0.0-beta.18" 的 docs 中所述。从主页 signIn() 调用 http://localhost:3000/ 时, ./app/page.tsx <form action={async () => { "use server"; await signIn(); }} > <button type="submit">Sign in</button> </form> 它将我重定向到 http://localhost:3000/api/auth/signin?callbackUrl=http%3A%2F%2Flocalhost%3A3000%2F 并正确呈现我的 login页面 ./app/login/page.tsx <form action={async (formData) => { "use server"; await signIn("credentials", formData); }} > <label> Email <input name="email" type="email" /> </label> <label> Password <input name="password" type="password" /> </label> <button>Sign In</button> </form> 但是单击按钮时出现以下错误: ✓ Compiled /api/auth/[...nextauth] in 86ms (489 modules) ✓ Compiled /login in 196ms (732 modules) POST / 303 in 3328ms [auth][error] MissingCSRF: CSRF token was missing during an action signin. Read more at https://errors.authjs.dev#missingcsrf at validateCSRF (webpack-internal:///(rsc)/./node_modules/@auth/core/lib/actions/callback/oauth/csrf-token.js:45:11) at AuthInternal (webpack-internal:///(rsc)/./node_modules/@auth/core/lib/index.js:71:100) at async Auth (webpack-internal:///(rsc)/./node_modules/@auth/core/index.js:126:34) at async /Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:53446 at async e_.execute (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:44747) at async e_.handle (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/compiled/next-server/app-route.runtime.dev.js:6:54700) at async doRender (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:1377:42) at async cacheEntry.responseCache.get.routeKind (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:1587:40) at async DevServer.renderToResponseWithComponentsImpl (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:1507:28) at async DevServer.renderPageComponent (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:1924:24) at async DevServer.renderToResponseImpl (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:1962:32) at async DevServer.pipeImpl (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:920:25) at async NextNodeServer.handleCatchallRenderRequest (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/next-server.js:272:17) at async DevServer.handleRequestImpl (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/base-server.js:816:17) at async /Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/dev/next-dev-server.js:339:20 at async Span.traceAsyncFn (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/trace/trace.js:154:20) at async DevServer.handleRequest (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/dev/next-dev-server.js:336:24) at async invokeRender (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/lib/router-server.js:174:21) at async handleRequest (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/lib/router-server.js:353:24) at async requestHandlerImpl (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/lib/router-server.js:377:13) at async Server.requestListener (/Users/nickelpaulsen/programmieren/nextjs/auth-last-try/node_modules/next/dist/server/lib/start-server.js:141:13) POST /api/auth/signin?callbackUrl=http%3A%2F%2Flocalhost%3A3000%2F 302 in 10ms GET /login?error=MissingCSRF 200 in 108ms 直接加载登录页面时http://localhost:3000/login我一切似乎都按预期工作。我已经检查了我能找到的与此错误有关的所有内容,但补救措施并没有修复我的错误。 我已将示例上传到 Github:https://github.com/Nighel123/next-auth-error-MissingCSRF。我的auth.ts看起来像这样: ./auth.ts import NextAuth from "next-auth"; import Credentials from "next-auth/providers/credentials"; // Your own logic for dealing with plaintext password strings; be careful! //import { saltAndHashPassword } from "@/utils/password"; export const { handlers, signIn, signOut, auth } = NextAuth({ pages: { signIn: "/login", }, providers: [ Credentials({ // You can specify which fields should be submitted, by adding keys to the `credentials` object. // e.g. domain, username, password, 2FA token, etc. credentials: { email: {}, password: {}, }, authorize: async (credentials) => { let user = { username: "lolli", email: "brolli" }; // logic to salt and hash password //const pwHash = saltAndHashPassword(credentials.password); // logic to verify if user exists //user = await getUserFromDb(credentials.email, pwHash); if (!user) { // No user found, so this is their first attempt to login // meaning this is also the place you could do registration throw new Error("User not found."); } // return user object with the their profile data return user; }, }), ], }); 我实现此工作的方式是在您的服务器组件内部,即 login/page.tsx 使用以下代码从 cookie 中获取 csrf 令牌 import { cookies } from "next/headers"; const csrfToken = cookies().get("authjs.csrf-token")?.value ?? ""; 使用此令牌并将其设置为表单的一部分 <input type="hidden" name="csrfToken" value={csrfToken} /> 现在,每次调用表单操作时,令牌都会随请求一起发送。 Auth.JS 内部很高兴,可以验证令牌。 在此处查看默认登录页面的源代码 - 链接我可以看到他们做了类似的事情。
Oauth2.0 授权码授予类型 State param 的用例是什么
我想知道从资源所有者那里获取授权代码所传递的状态的用例,消息来源说它用于防止 CSRF 攻击 谁能解释一下如何传递随机字符串...