小编Dje*_*eth的帖子

为什么 BFF 模式被认为对于 SPA 来说更安全?

我正在设计一个新的 Web 应用程序,需要 oAuth2 实现。我一直在阅读 PKCE 的 oAuth2 授权代码流程。这是有道理的,它确保启动授权代码流的客户端与交换访问令牌(和/或刷新令牌)的授权代码的客户端是同一客户端。

但后来我想知道我们如何处理刷新令牌。据我所知,BFF 现在是首选解决方案,我们使用一个单独的组件(前端的后端)来处理来自 Web 应用程序的所有调用并将这些调用代理到后端 api,同时处理所有访问令牌和刷新令牌。Web 应用程序和 BFF 维护一个会话 cookie,因此 BFF 可以跟踪应将哪个访问令牌添加到哪个请求等。

大多数博客都提到“如果您将会话 cookie 设置为严格且仅 http 且安全,这是安全的,因为这样恶意 JS 就无法获取该 cookie”。

这就是我难以理解为什么这更安全的地方。如果 cookie 足够安全来处理会话 ID,那么为什么它们不够安全来处理访问令牌呢?或者甚至刷新令牌?如果它们是基于 cookie 的,那么它们会随每个请求一起发送,并且恶意 JS 无法访问它。如果可以,那么 BFF 模型不会提供任何额外的安全性,只是稍微复杂一点,不是吗?

所以底线是:如果 BFF 被认为是安全的(r),因为会话保存在安全的仅 http cookie 中,为什么将访问/刷新令牌保存在安全的仅 http cookie 中不安全?

cookies access-token oauth-2.0 single-page-application refresh-token

13
推荐指数
2
解决办法
5078
查看次数

您可以将变量组值传递给 yaml 中的子模板吗?

我正在尝试创建一个多级管道,其中为管道的每个阶段定义了变量组。目标是将组中的值作为参数传递给子模板。看来在该阶段定义的组的值没有传递到子模板中。它用空字符串覆盖“DEFAULTVALUE”。

管道.yml

    trigger:
    - none

    pool:
      name: 'Azure Pipelines'
      vmImage: windows-latest

    stages:
      - stage: DEV
        variables:
          - group: my-group-dev
        jobs:
          - template: sub-template.yml
            parameters:
              env: 'dev'
              subscriptionName: '$(SubscriptionName)' # This reference from the variable group doesn't get passed in
              subscriptionId: '$(SubscriptionId)'

      - stage: TEST
        variables:
          - group: my-group-test
        jobs:
          - template: sub-template.yml
            parameters:
              env: 'test'
              subscriptionName: '$(SubscriptionName)' # This reference from the variable group doesn't get passed in
              subscriptionId: '$(SubscriptionId)'
Run Code Online (Sandbox Code Playgroud)

子模板.yml

    parameters:
      env: 'DEFAULTVALUE'
      subscriptionName: 'DEFAULTVALUE'
      subscriptionId: 'DEFAULTVALUE'

    jobs:
      - …
Run Code Online (Sandbox Code Playgroud)

azure azure-devops

5
推荐指数
1
解决办法
4968
查看次数

$ .ajax succes:函数在接收答案时什么都不做

现在这让我困扰了2个多小时,我只是没有看到它.

我有一个表单,它在PHP中验证它.所以我所做的是根据我提交的返回响应创建一个AJAX调用,或者不提交表单.这是我的AJAX调用:

    $("#savePO").click(function() {
        $.ajax({
            type : 'POST',
            url : 'ajax/newpo_check_ajax.php',
            data : $("#newpoform").serialize(),
            succes : function(respons) {
                alert(respons);
            }

        });
});
Run Code Online (Sandbox Code Playgroud)

响应页面(newpo_check_ajax.php)只是:

<?php
echo "AJAX IS WORKING!";
?>
Run Code Online (Sandbox Code Playgroud)

当我检查Firebug时,它声明响应确实应该是什么("AJAX正在工作!"),但无论我尝试什么,我都没有得到响应警报!

上面的jQuery代码位于我的页面底部,因为它不能在顶部工作(内部$(document).ready()).

任何帮助表示赞赏!:)

编辑:不幸的是我再也无法正常阅读了.我忘记了一个S成功了.

php ajax jquery

-2
推荐指数
1
解决办法
97
查看次数