相关疑难解决方法(0)

HTTP cookie端口是否特定?

我在一台机器上运行了两个HTTP服务.我只是想知道他们是否共享他们的cookie或者浏览器是否区分了两个服务器套接字.

security cookies http

326
推荐指数
7
解决办法
10万
查看次数

跨域Cookie

我在两个不同的域中有两个webapps WebApp1和WebApp2.

  1. 我在HttpResponse中的WebApp1中设置了一个cookie.
  2. 如何从WebApp2中的HttpRequest读取相同的cookie?

我知道这听起来很奇怪,因为cookie特定于某个域,我们无法从不同的域访问它们; 我听说过CROSS-DOMAIN cookie可以在多个webapps之间共享.如何使用CROSS-DOMAIN cookie实现此要求?

注意:我正在尝试使用J2EE webapps

cookies web-applications cross-domain

217
推荐指数
10
解决办法
31万
查看次数

带有显式域的localhost上的Cookie

我一定错过了一些关于cookie的基本知识.在本地主机上,当我设置在服务器端的cookie,明确指定域为localhost(或.localhost).某些浏览器似乎没有接受cookie.

Firefox 3.5:我在Firebug中检查了HTTP请求.我看到的是:

Set-Cookie:
    name=value;
    domain=localhost;
    expires=Thu, 16-Jul-2009 21:25:05 GMT;
    path=/
Run Code Online (Sandbox Code Playgroud)

或者(当我将域设置为.localhost时):

Set-Cookie:
    name=value;
    domain=.localhost;
    expires=Thu, 16-Jul-2009 21:25:05 GMT;
    path=/
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,都不会存储cookie.

IE8:我没有使用任何额外的工具,但cookie似乎也没有存储,因为它不会在后续请求中发回.

Opera 9.64: localhost和.localhost都工作,但是当我检查Preferences中的cookie列表时,域名设置为localhost.local,即使它列在localhost下(在列表分组中).

Safari 4: localhost和.localhost都可以工作,但它们在Preferences中始终列为.localhost.另一方面,没有显式域的cookie,它显示为localhost(无点).

localhost有什么问题?由于存在这么多的不一致,必须有一些涉及localhost的特殊规则.另外,我不完全清楚为什么域名必须以点为前缀?RFC 2109明确声明:

Domain属性的值不包含嵌入点或不以点开头.

为什么?该文件表明它必须对安全做些什么.我不得不承认我没有阅读整个规范(稍后可能会这样做),但听起来有点奇怪.基于此,在localhost上设置cookie是不可能的.

cookies setcookie

169
推荐指数
7
解决办法
19万
查看次数

登录表单是否需要针对CSRF攻击的令牌?

从我到目前为止所学到的,令牌的目的是防止攻击者伪造表单提交.

例如,如果某个网站的表单中添加了添加到购物车中的商品,并且攻击者可能会使用您不想要的商品向您的购物车发送垃圾邮件.

这是有道理的,因为购物车表单可能有多个有效输入,攻击者必须做的就是知道网站正在销售的项目.

我理解令牌如何工作并在这种情况下增加安全性,因为它们确保用户实际填写并按下表格中的"提交"按钮以添加到购物车中的每个项目.

但是,令牌是否为用户登录表单添加了任何安全性,这需要用户名和密码?

由于用户名和密码非常独特,攻击者必须知道这两种情况才能使登录伪造工作(即使你没有设置令牌),如果攻击者已经知道这一点,他就可以登录网站本人.更不用说,使用户登录的CSRF攻击无论如何都没有任何实际意义.

我对CSRF攻击和令牌的理解是否正确?我怀疑它们对用户登录表单没用吗?

php csrf token

144
推荐指数
3
解决办法
3万
查看次数

使Axios自动在其请求中发送cookie

我正在使用Axios从客户端向Express.js服务器发送请求.

我在客户端设置了一个cookie,我想从所有Axios请求中读取该cookie,而不是手动添加它们来手动请求.

这是我的客户端请求示例:

axios.get(`some api url`).then(response => ...
Run Code Online (Sandbox Code Playgroud)

我试图通过在Express.js服务器中使用这些属性来访问标头或cookie:

req.headers
req.cookies
Run Code Online (Sandbox Code Playgroud)

它们都不包含任何cookie.我正在使用cookie解析器中间件:

app.use(cookieParser())
Run Code Online (Sandbox Code Playgroud)

如何让Axios自动在请求中发送cookie?

编辑:

我在客户端设置cookie如下:

import cookieClient from 'react-cookie'

...
let cookie = cookieClient.load('cookie-name')
if(cookie === undefined){
      axios.get('path/to/my/cookie/api').then(response => {
        if(response.status == 200){
          cookieClient.save('cookie-name', response.data, {path:'/'})
        }
      })
    }
...
Run Code Online (Sandbox Code Playgroud)

虽然它也使用Axios,但它与问题无关.一旦设置了cookie,我只想在我的所有请求中嵌入cookie.

javascript cookies node.js express axios

86
推荐指数
11
解决办法
10万
查看次数

使用跨域帖子发送凭据?

根据带有凭据的请求,Firefox只会发送凭据以及跨域帖子

invocation.withCredentials = "true";

设置...但似乎jQuery的Ajax API没有为此提供任何机制.

有没有我错过的东西?还有其他方法可以做到吗?

javascript jquery cross-domain

76
推荐指数
2
解决办法
14万
查看次数

Express没有设置cookie

我有通过快递设置cookie的问题.我正在使用Este.js dev stack,我尝试在API身份验证/login路由中设置cookie .这是我在/api/v1/auth/login路线中使用的代码

res.cookie('token', jwt.token, {expires: new Date(Date.now() + 9999999)});
res.status(200).send({user, token: jwt.token});
Run Code Online (Sandbox Code Playgroud)

src/server/main.js我已经注册cookie-parser为第一个中间件

app.use(cookieParser());
Run Code Online (Sandbox Code Playgroud)

/api/v1/auth/login路由的响应头包含

Set-Cookie:token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ.. 
Run Code Online (Sandbox Code Playgroud)

但cookie没有保存在浏览器中(document.cookie是空的,Resources - Cookies在develepoers工具中的选项卡也是空的):(

编辑: 我发现当我打电话给这个/api/v1/auth/login(没有电话res.sendres.json)

res.cookie('token', jwt.token, {expires: new Date(Date.now() + 9999999), httpOnly: false}); next();

然后设置cookie并且响应头已设置X-Powered-By:Este.js...这esteMiddlewareexpres前端渲染部分中设置.

我用的时候 res.send

res.cookie('token', jwt.token, {expires: new Date(Date.now() + 9999999), httpOnly: false}).send({user, token: jwt.token});`
next();
Run Code Online (Sandbox Code Playgroud)

然后我得到错误Can't set …

cookies node.js express

19
推荐指数
6
解决办法
3万
查看次数

如何在react-redux中发出HTTP请求?

我刚开始反应,我有点迷失.我正在尝试创建登录页面并发出http post请求.现在我只是想让任何类型的HTTP请求工作,所以我正在使用请求bin,我在npm包的文档中找到了这个基本操作(https://www.npmjs.com/package/redux -react-fetch):

export function updateTicket(ticketId, type, value){
  return {
    type: 'updateArticle',
    url: `http://requestb.in/1l9aqbo1`,
    body: {
      article_id: ticketId,
      title: 'New Title'
    },
    then: 'updateTicketFinished'
  }
}
Run Code Online (Sandbox Code Playgroud)

所以,在写完一个动作之后,我该怎么办?我如何实际让我的应用程序调用并使用该操作?npm包的文档提到了在我的商店中设置状态的东西,我需要先设置一些东西吗?

jsx reactjs redux react-redux

17
推荐指数
1
解决办法
3万
查看次数

Set-Cookie 标头中的 Cookie 未设置

我使用 axios 从 ReactJS 客户端向 Node.js 服务器发送请求,如下所示。

import axios from 'axios';

const apiClient = axios.create({
  withCredentials: true,
  baseURL: 'http://localhost:8080'
});

async function(payload) {
  try {
    debugger;
    let result = await apiClient.post('/auth/signup/', payload);
    debugger;
    return result;
  } catch (error) {
    debugger;
    throw error;
  }
}
Run Code Online (Sandbox Code Playgroud)

Node.js 端点在响应中设置一个 cookie,如下所示。

const express = require('express');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser')
const cors = require('cors');
const jwt = require('jsonwebtoken');

router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
router.use(cors({ origin: 'http://localhost:3000', credentials: true, exposedHeaders: ['Set-Cookie', 'Date', …
Run Code Online (Sandbox Code Playgroud)

cookies cross-domain node.js reactjs axios

14
推荐指数
1
解决办法
2万
查看次数

将withCredentials设置为新的ES6内置HTTP请求API:Fetch

如何设置withCredentials=truefetch其回报的承诺.以下是正确的:

fetch(url,{
   method:'post',
   headers,
   withCredentials: true
});
Run Code Online (Sandbox Code Playgroud)

我认为MDN文档谈到了关于http请求的所有内容,除非这一点:withCredentials

javascript xmlhttprequest ecmascript-6 fetch-api

13
推荐指数
1
解决办法
1万
查看次数