对于活跃开发的软件,我们使用 Spring Boot(带有 Spring Security)和 Keycloak Adapter。
目标是:
@Public(参见代码片段)(这有效)一切正常,但我在理解一些细节时遇到了一些问题:
KeycloakWebSecurityConfigurerAdapter能够CSRF保护。我认为这样做只是为了它可以注册自己的匹配器以允许来自 Keycloak 的请求JSESSIONID也会返回 cookie根据我的理解:
KeycloakWebSecurityConfigurerAdapter启用它)。这只是BASIC Auth部分吗?CSRF确实需要保护 - 但我首先不想要会话,然后 API 就不需要CSRF保护,对吗?http.sessionManagement().disable()在super.configure(http)通话后设置了JSESSIONIDcookie(所以这是从哪里来的?)正如代码片段中所述,SessionAuthenticationStrategy由于我们使用了AuthorizationKeycloak的一部分并且应用程序是 a Service Account Manager(因此管理这些资源记录),因此一次未设置为 null 。
如果有人可以解决问题,那就太好了。提前致谢!
@KeycloakConfiguration
public class WebSecurityConfiguration extends …Run Code Online (Sandbox Code Playgroud) 我想在我的网络应用程序中添加谷歌地图(嵌入)地图。我正在构建 Angular 8 并使用内置服务器,但仍在 console.log 中显示警告
A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review coo...
Run Code Online (Sandbox Code Playgroud)
我在 ngOnInit 方法的代码中所做的事情,我已经添加了这个
this.cookieService.set('cross-site-cookie',"bar");
this.cookieService.set('SameSite','SameSite=None; Secure');
Run Code Online (Sandbox Code Playgroud)
上面的代码我使用名为 ngx-cookie-service 的 npm 包。另外,当我自己参考这个网站时
https://github.com/GoogleChromeLabs/samesite-examples/blob/master/javascript.md
Run Code Online (Sandbox Code Playgroud)
我不确定我做对了还是错了。我所做的只是使用我所在的谷歌地图的“复制链接”完全复制。如何解决这个问题。
这个话题一直是StackOverflow和其他许多技术论坛上许多问题和答案的祸根。然而,他们大多是针对具体情况更糟糕:“在所有”脚本注射预防通过安全dev-tools-console,或者dev-tools-elements甚至address-bar被说成是“不可能”来保护。这个问题是为了解决这些问题,并随着技术的改进(或发现新的/更好的方法来解决与script-injection攻击有关的浏览器安全性问题),作为当前和历史的参考。
有很多方法可以“实时”提取或操作信息。特别是,无论SSL / TLS为何,截取从输入中收集的信息(要传输到服务器)都非常容易。
截取示例在这里看看,
不管它有多“粗鲁”,都可以轻松地使用该原理来制作模板,然后将其复制并粘贴到eval()浏览器控制台中,以进行各种讨厌的事情,例如:
console.log()通过XHR拦截传输中的信息POST-data,更改用户引用,例如UUIDsGET通过检查JS代码将目标服务器替代(&张贴)请求信息提供给中继(或获取)信息,cookies以及headers对于未经训练的人来说,这种攻击“似乎”微不足道,但是当高度动态的界面受到关注时,这很快就变成了一场噩梦-等待被利用。
我们都知道“您不能信任前端”,服务器应该对安全负责;但是-我们心爱的访客的隐私/安全又如何呢?许多人使用JavaScript创建“快速应用程序”,要么都不知道(或不关心)后端安全性。
确保前端和后端的安全对普通攻击者来说是非常艰巨的,而且减轻了服务器负载(在许多情况下)。
Google和Facebook都采取了一些缓解这些问题的方法,并且它们都可以工作。因此,这不是“不可能”的,但是它们非常特定于各自的平台,要实现该功能,需要使用整个框架以及大量工作-仅覆盖基础知识。
无论这些保护机制中的某些看起来多么“丑陋”;目标是在某种程度上帮助(缓解/预防)安全问题,这使攻击者难以承受。众所周知,“您不能阻止黑客,只能阻止他们的努力”。
目标是拥有一套简单的工具(功能):
immutable,以防止攻击者“重新捕获”我想防止我的网站受到 clickJacking 攻击。在哪个文件中以及在何处设置 X-Frame-Options 以防止 clickJacking 攻击。
基本上我正在使用 mongodb 构建一个无服务器的 next.js 应用程序。
想法 1:React 已经阻止了大部分 XSS,那么我应该将用户登录信息存储在 Web 存储中吗?这样我就不用担心CSRF了。
想法2:如果我使用基于httpOnly cookie的身份验证,因为httpOnly和sameorigin已经防止了XSS(和一些CSRF),我可以继续我的设计而无需担心?您认为这对于初学者电子商务网站来说足够了吗?
想法 3:将 CSRF 令牌添加到基于 cookie 的身份验证中
无服务器应用程序有更好的想法吗?或者我错过了什么?你有什么建议吗 ?
想法4:使用CSRF内置框架,如express.js ....
更新:支持 next-auth ,但我想了解 auth 所以真的想自己构建
我不明白为什么 AJAX 请求 (XSRF-TOKEN) 的令牌与_token正常表单使用的令牌不同。此外,它更长。为什么?为什么有 2 个令牌呢?为什么不使用一个对 ajax 和普通请求都相同的请求?
如果我在公共互联网上发布一个 API,但它仅供我的应用程序使用,我可以制定接受域的白名单,这样其他域就无法使用它。
但我总是想知道,黑客在向我的 API 发出 HTTP 请求时不能编辑他们的“来自域”吗?他们不能模仿其他域来欺骗我的 API,让他们相信他们是可信的吗?
我有一个单页面应用程序(内置于 .net core MVC 2.2),其中 html 部分是动态加载的。
在主文档中,添加了具有动态生成标头的 CSP 策略,如下所示:
Content-Security-Policy: script-src 'self' 'nonce-I64vb811BxRNGV9Xf0pM'
Run Code Online (Sandbox Code Playgroud)
然后是通过 jquery ajax 加载函数加载的页面部分。page 部分包含一个带有随机数的脚本(来自 src)。带有 CSP 标头的页面部分看起来像
Content-Security-Policy: script-src 'self' 'nonce-ci5TQsyidT8x2jwBLRHS'
Run Code Online (Sandbox Code Playgroud)
一切都很好,但浏览器(chrome、safari 阻止脚本),带有消息:
jqueryscriptsbundle.js:formatted:43 Refused to execute inline script
because it violates the following
Content Security Policy directive: "script-src 'self' 'nonce-I64vb811BxRNGV9Xf0pM'
Run Code Online (Sandbox Code Playgroud)
因此,浏览器正在将脚本的随机数(即 ci5TQsyidT8x2jwBLRHS)与根/主页随机数值 I64vb811BxRNGV9Xf0pM 进行比较,因此脚本被阻止。
这是正确的行为吗?我该怎么做才能让它发挥作用?
在 Heroku 托管站点上遇到一些间歇性 5xx 错误后,我只是在查看我们的日志,在那里我发现了许多来自 localhost 的错误,这些错误是对隐藏文件的请求,通常是 .env 以及诸如“.well”之类的东西-known/assetlinks.json”,偶尔在不存在的子文件夹中包含 .env。
请求不频繁(每天 15 - 30 个),但似乎已经持续了一周。他们还遇到了“规则禁止访问”,据我所知是 nginx。
该请求类似于:
2020/09/28 14:37:44 [错误] 160#0:*1928 规则禁止访问,客户端:10.45.153.152,服务器:localhost,请求:“GET /.env HTTP/1.1”,主机:REMOVED
我服务器上没有任何 ENV 文件,而且 nginx 似乎阻止了请求,所以感觉没有任何危害。重新启动所有 dynos 似乎已经终止了活动(基于已经过去了几个小时),但让我担心的是这些似乎是“来自房子内部”。这里有什么值得我关注的吗?这是一个机器人利用具有本地访问权限的系统中的错误的案例吗?
我想从 github 安装这个工具:https ://github.com/ethicalhackingplayground/ssrf-tool
我正在使用cmd: go install github.com/ethicalhackingplayground/ssrf-tool@latest
输出 :
go: finding module for package github.com/projectdiscovery/gologger
go: finding module for package github.com/briandowns/spinner
go: finding module for package github.com/logrusorgru/aurora
go: found github.com/briandowns/spinner in github.com/briandowns/spinner v1.18.1
go: found github.com/logrusorgru/aurora in github.com/logrusorgru/aurora v2.0.3+incompatible
go: found github.com/projectdiscovery/gologger in github.com/projectdiscovery/gologger v1.1.4
# github.com/ethicalhackingplayground/ssrf-tool
..\..\..\go\pkg\mod\github.com\ethicalhackingplayground\ssrf-tool@v0.0.0-20200901082948-7f3cffc3c7bb\ssrftool.go:34:2: undefined: gologger.Printf
..\..\..\go\pkg\mod\github.com\ethicalhackingplayground\ssrf-tool@v0.0.0-20200901082948-7f3cffc3c7bb\ssrftool.go:35:2: undefined: gologger.Infof
..\..\..\go\pkg\mod\github.com\ethicalhackingplayground\ssrf-tool@v0.0.0-20200901082948-7f3cffc3c7bb\ssrftool.go:36:2: undefined: gologger.Infof
Run Code Online (Sandbox Code Playgroud)
我对 golang 非常陌生,go 在我的系统中安装得很好,因为 github 上的其他工具运行良好。如果需要对该工具的代码进行一些更改,请提出建议。