相关疑难解决方法(0)

在子域和域之间共享cookie

我有两个问题.我理解,如果我.mydomain.com在cookie中指定域(带有前导点),则所有子域都可以共享cookie.

可以subdomain.mydomain.com访问在mydomain.com(没有www子域)中创建的cookie 吗?

如果创建的话,可以mydomain.com(没有www子域)访问cookie subdomain.mydomain.com吗?

cookies subdomain http

368
推荐指数
5
解决办法
25万
查看次数

设置Access-Control-Allow-Origin有哪些安全隐患?

我最近不得不设置Access-Control-Allow-Origin*能够进行跨子域ajax调用.
现在我不禁觉得我的环境存在安全风险.
如果我做错了,请帮助我.

security ajax cors

108
推荐指数
4
解决办法
4万
查看次数

使用AngularJS进行身份验证,使用REST Api WS进行会话管理和安全性问题

我开始使用angularJS开发一个web应用程序,我不确定一切都是正确的安全(客户端和服务器端).安全性基于单个登录页面,如果检查完凭证,我的服务器会发回一个具有自定义时间有效性的唯一令牌.所有其他REST api都可以通过此令牌访问.应用程序(客户端)浏览到我的入口点ex:https://www.example.com/home.html用户插入凭据并接收一个唯一令牌.此唯一令牌使用AES或其他安全技术存储在服务器数据库中,不以明文格式存储.

从现在开始,我的AngluarJS应用程序将使用此令牌对所有暴露的REST Api进行身份验证.

我正在考虑将令牌临时存储在自定义的http cookie中; 基本上,当服务器验证凭据时,它会发回一个新的Cookie Ex.

app-token : AIXOLQRYIlWTXOLQRYI3XOLQXOLQRYIRYIFD0T
Run Code Online (Sandbox Code Playgroud)

该cookie具有安全HTTP Only标志设置.Http协议直接管理新cookie并存储它.连续请求将使用新参数呈现cookie,而无需管理它并使用javascript存储它; 在每次请求时,服务器使令牌无效并生成一个新令牌并将其发送回客户端 - >使用单个令牌防止重放攻击.

当客户端从任何REST Api 收到HTTP状态401未授权响应时,角度控制器清除所有cookie并将用户重定向到登录页面.

我应该考虑其他方面吗?将令牌存储在新cookie或localStorage中更好吗?有关如何生成唯一强令牌的任何提示?

编辑(改进):

  • 我决定使用HMAC-SHA256作为会话令牌生成器,有效期为20分钟.我生成一个随机的32字节GUID,附加一个时间戳并通过提供一个40字节的密钥来计算HASH-SHA256.由于令牌有效性非常小,因此很难获得冲突.
  • Cookie将具有域和路径属性以提高安全性.
  • 不允许多次登录.

authentication cookies rest angularjs angularjs-authentication

66
推荐指数
2
解决办法
8万
查看次数

跨域POST请求不发送cookie Ajax Jquery

似乎已经在stackoverflow上讨论了类似的东西,但我找不到完全相同的东西.

我正在尝试使用CORS(跨源资源共享)发送Cookie,但它无法正常工作.

这是我的代码.

$.ajax(
    { 
      type: "POST",
      url: "http://example.com/api/getlist.json",
      dataType: 'json',
      xhrFields: {
           withCredentials: true
      },
      crossDomain: true,
      beforeSend: function(xhr) {
            xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
      },
      success: function(){
           alert('success');
      },
      error: function (xhr) {
             alert(xhr.responseText);
      }
    }
);
Run Code Online (Sandbox Code Playgroud)

我没有在请求HEADER中看到这个cookie.

javascript cookies ajax jquery cross-domain

59
推荐指数
4
解决办法
9万
查看次数

为跨源请求设置cookie

如何共享cookie跨源?更具体地说,如何将Set-Cookie标题与标题结合使用Access-Control-Allow-Origin

这是我的情况的解释:

我正在尝试localhost:4000为托管在其上的Web应用程序中运行的API设置cookie localhost:3000.

我似乎在浏览器中收到了正确的响应标题,但不幸的是它们没有任何效果.这些是响应标头:

HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://localhost:3000
Vary: Origin, Accept-Encoding
Set-Cookie: token=0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; Max-Age=86400; Domain=localhost:4000; Path=/; Expires=Tue, 19 Sep 2017 21:11:36 GMT; HttpOnly
Content-Type: application/json; charset=utf-8
Content-Length: 180
ETag: W/"b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ"
Date: Mon, 18 Sep 2017 21:11:36 GMT
Connection: keep-alive

此外,Response Cookies当我使用Chrome开发者工具的"网络"标签检查流量时,我可以看到cookie .但是,我看不到在"应用程序"选项卡下设置的cookie Storage/Cookies.我没有看到任何CORS错误,所以我假设我错过了其他的东西.

有什么建议?

更新I:

我正在使用React-Redux应用程序中的请求模块/signin向服务器上的端点发出请求.对于服务器我使用快递.

快递服务器:

res.cookie('token', 'xxx-xxx-xxx', { maxAge: 86400000, httpOnly: true, domain: 'localhost:3000' })

在浏览器中请求:

request.post({ uri: '/signin', json: { userName: …

authentication cookies localhost http-headers cors

35
推荐指数
4
解决办法
4万
查看次数

Facebook Like按钮如何工作?

我想提供一个简单的Javascript(或者我认为是iframe),允许第三方在我们的网站中嵌入功能.所述小部件的用户将在我们的网站上进行身份验证 - 所以基本上Facebook Like按钮或Facebook Connect是我能找到的最接近的示例.

由于Facebook有几个不同的按钮,我很难理解他们正在做什么.是否有一个简洁的(技术 - 我是开发人员,并希望建立我自己的小部件)解释在某处?我特别关注所涉及的安全问题.

javascript iframe facebook widget

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

跨域cookie - 一个可能是新想法

我的好友Carsten Lau提出了一个关于如何阅读跨域cookie的有趣想法.

情况:您想要从域"B"上设置的域"A"中读取cookie.想法:从域"A"上的客户端,您对域"B"上的动态资源执行get-request - fe图像或javascript,服务器"B"实际上是一种能够读取cookie的编程语言像PHP,Java等.通过该请求,您可以发送一个唯一的标识符,如会话ID.因此,查看域"A"上的站点的客户端上的代码可能如下所示:

<img src="www.domainB.com/?getCookie.php?sessionID=1234">
Run Code Online (Sandbox Code Playgroud)

现在是有趣的部分,服务器B在服务器端读取由域"B"设置的cookie,并将结果与​​提供的session-id一起写入域"A"可访问的DB中,或者返回包含cookie信息的响应域"A"上的客户端然后通过AJAX将其发送到服务器"A".

我很确定我们还没有发现一个漏洞.我个人认为服务器"B"将无法读取cookie信息,因为客户端浏览器URL指向域"A",但当然上面解释的"getCookie" - 请求指向"B".

请告诉我们您对它的看法,工作原理或无法工作的原因.令我惊讶的是,一个小小的概念证明是成功的.

javascript cookies cross-domain

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

使用PHP或JavaScript在多个域上设置cookie

我有3个主题相同的域名.如果有人选择不同的主题,我希望它在所有3个域中传播,以便他们的体验保持不变.

我计划通过在domain1上设置cookie,重定向到设置了cookie的domain2,重定向到设置了cookie的domain3,重定向回来来实现此目的.由于信息不需要是安全的或受到保护的,因此无需任何实际问题即可正常工作.

我讨厌3重定向只是为了在每个域上设置一个cookie,并且正在寻找更优雅的东西.

javascript php cookies setcookie

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

localStorage从本地文件访问

我正在创建2个HTML文件,这些文件将在本地存储在iPhone中并通过a访问WebView.

我想知道是否可以localStorage在一个文件中设置,并从另一个文件中获取存储的结果.

我知道localStorage可以从同一域上的文件访问,但是,您似乎无法从其他本地文件中获取值?

我也尝试在桌面上使用本地文件在Safari中运行它,并出现同样的问题.

javascript html5 local-storage

9
推荐指数
1
解决办法
9383
查看次数

单点登录(sso)laravel

我有三个不同的laravel网站,我想让用户在一个网站登录,然后他将自动登录到其他两个网站.例如.如果您在stackoverflow上登录然后打开stackexchange,您将使用StackOverflow帐户登录.我尝试了很多软件包,但它们以无限的例外结束,或者它们根本不起作用.大多数基于SAML的软件包,我不知道为什么它不适用于我?我不知道我错过了什么?这有什么配置吗? 我正在使用laravel 5.6.所有应用程序都在同一台服务器上.

我已经尝试了许多基于SAML,OpenID和共享会话的解决方案,但所有这些解决方案都不能与我合作.我不知道我是否想念一些东西. 这是我尝试的最后一个例子,它没有用

这是我的代码

网站A.

$site_b = 'http://s_sesstion_2.test/';
Route::get('/', function (Request $request) use ($site_b) {
    $session_id = Session::getId();
    try {
        $http = new Client();
        $response = $http->post($site_b . 'api/sessions/server', [
            'form_params' => [
                'session_id' => $session_id,
            ],
            'headers' => [
                'Accept' => 'application/json',
            ]
        ]);
    } catch (Exception $e) {
        dd($e->getMessage());
    }
    return view('welcome');
});
Run Code Online (Sandbox Code Playgroud)

站点B(路线/ api.php)

    Route::post('/sessions/server', function (Request $request) {
    Storage::disk('local')->put('file.txt', $request->get('session_id'));
});
Run Code Online (Sandbox Code Playgroud)

站点B(route/web.php)

    Route::get('/', function () {
    $session_id …
Run Code Online (Sandbox Code Playgroud)

php saml single-sign-on laravel

8
推荐指数
1
解决办法
2940
查看次数