小编Zik*_*iko的帖子

Keycloak:使用新的 Chrome SameSite/Secure cookie 强制执行令牌请求中缺少会话 cookie

最近,我使用 Keycloak 的应用程序在身份验证后停止处理 400 令牌请求。

到目前为止,我发现在令牌请求中,Keycloak cookie(AUTH_SESSION_ID、KEYCLOAK_IDENTITY、KEYCLOAK_SESSION)未在请求标头中发送,导致令牌请求失败并且应用程序收到会话错误。

通过深入研究,我发现 Chrome 现在阻止了没有设置 SameSite 属性的 cookie,keycloak cookie 就是这种情况,这就是为什么它们在身份验证后从未在令牌获取请求中解析的原因。

我得到的错误:-

在此处输入图片说明 https://blog.chromium.org/2019/10/developers-get-ready-for-new.html

https://adzerk.com/blog/chrome-samesite/

这是非常严重的,因为它阻止了 Keycloak 库保护的应用程序能够与 keycloak 服务器通信。

更新:使用新的 google chrome cookie SameSite 属性,任何使用 cookie 的第三方库没有正确设置 SameSite 属性,cookie 将被忽略。 https://blog.chromium.org/2019/10/developers-get-ready-for-new.html

https://www.chromium.org/updates/same-site

redhat google-chrome single-sign-on keycloak keycloak-services

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

Javascript:网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)

我正在花时间尝试修复 veracode 扫描缺陷 CWE-80 网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)。

我所做的是对后端进行 HTTP 调用,以便打开包含下载文件的 blob。

    const xhr = new XMLHttpRequest();
    xhr.open("GET", url, true);
    xhr.responseType = "arraybuffer";
    xhr.onreadystatechange =  () => {
        if (xhr.readyState === 4 && xhr.status === 200) {
            var windowUrl = window.URL || window.webkitURL;
            var blobUrl = windowUrl.createObjectURL(new Blob([xhr.response]));
            const doc = document.createElement('a');
            document.body.appendChild(doc);
            doc.href = blobUrl;
            if (filename) {
                doc.download = filename;
            }
            doc.click();
            windowUrl.revokeObjectURL(url);
        }
    }
        xhr.send();
Run Code Online (Sandbox Code Playgroud)

veracode 抱怨这一行

document.body.appendChild(doc);
Run Code Online (Sandbox Code Playgroud)

对 Node.appendChild() 的调用包含跨站点脚本 (XSS) 缺陷。该应用程序使用不受信任的输入填充 HTTP 响应,从而允许攻击者嵌入恶意内容,例如 Javascript 代码,这些内容将在受害者浏览器的上下文中执行。XSS …

javascript xss xmlhttprequest owasp veracode

6
推荐指数
1
解决办法
6354
查看次数

在 web.xml 中将 cookie-config 设置为 httpOnly 并确保安全后,无法读取 JSESSIONID cookie

我在我的 webapp 应用程序 web.xml 中添加了以下配置

  <session-config>
    <cookie-config>
      <path>/</path>
      <http-only>true</http-only>
      <secure>true</secure>
    </cookie-config>
 </session-config>  
Run Code Online (Sandbox Code Playgroud)

当我启动应用程序时,我发送一个 http 请求来设置此 cookie,并且我可以在带有路径 /、Secure 和 httpOnly 的 http 响应中看到它。

但是,我看不到此 cookie 在以下 http 请求中发送,因此,如果我对以下请求执行 request.getSession().getId() ,我会得到一个空字符串。

我尝试将以下内容添加到我的 tomcat 8.5 上下文以及 WAR 上下文中

<Context sessionCookiePath="/">
Run Code Online (Sandbox Code Playgroud)

但它并没有解决问题。

这是否意味着 JSESSIONID cookie 不安全,因此会被忽略在请求中发送?

java cookies tomcat session-cookies tomcat8.5

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

刷新页面时 Aurelia 弹出窗口不起作用

众所周知,当我们点击浏览器上的刷新按钮时,我们可以弹出一个询问我们是否确定刷新页面的弹出窗口。通常它是通过在 onbeforeunload 上添加一个事件监听器来完成的。

但是,在我的 Aurelia 应用程序中,我尝试这样做,但它不起作用。

假设这是我的 app.js(根 ModelView)

export class App {

this.refreshClicked = () =>{ return "Are you sure you want to exit?"; };

attached(){
window.addEventListener("onbeforeunload", this.refreshClicked);
}
Run Code Online (Sandbox Code Playgroud)

但是它不起作用,但是,如果我们将 return 语句替换为console.log("clicked")我可以看到侦听器可以正常工作。

有什么帮助吗?

onbeforeunload aurelia

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

匹配有效版本号的正则表达式模式

我正在寻找与版本号匹配的正则表达式模式。

我在这里找到的解决方案并不真正符合我的需要。

我需要该模式对单个数字以及后跟 .

有效数字是

1
1.23
1.2.53.4
Run Code Online (Sandbox Code Playgroud)

无效的数字是

01
1.02.3
.1.2
1.2.
-1
Run Code Online (Sandbox Code Playgroud)

regex

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