我有一个单页应用程序,包含敏感内容,需要保护。这个问题是专门针对 XSS 和 CSRF 攻击的。
说明:很多地方都提出了建议,例如这里在存储 auth-token 的同时在 localStorage 之上使用 cookie。此处还提供了一个很好的解释来回答另一个问题。
基于这些答案,对于安全内容,建议使用带有“httpOnly”和“secure”选项的 cookie 以避免 XSS;并由我们自己实现 CSRF 保护(类似于asp.net 中的防伪令牌)(请注意,我不是在 Asp .net 上,而是在 java 堆栈上)。
以为这些博客和对话有些陈旧,随着时间的流逝,场景有所改变。现在使用具有严格策略的Contents-Security-Policy 标头 [CSP],可以显着降低 XSS 攻击的风险。此外,现代浏览器在很大程度上支持CSP 。考虑到 CSP 的 XSS 安全性,现在我觉得使用 localStorage 而不是 cookie 来避免 CSRF 是一个不错的选择。
问题:您认为使用“LocalStorage + CSP(无需手动实现)”有什么缺点/安全漏洞吗?
超过
Cookies [httpOnly and secure] + CSRF 防伪令牌的“手动”实现?
考虑:
除了 CSP 响应标头之外,您还可以考虑按照此处的建议仍然支持 X-XSS-Protection 标头。
您可以考虑该站点是 HTTPS,具有 HSTS、HPKP 安全标头的实现。
问题: 我应该使用什么确切的 ojdbc 驱动程序:Oracle 12cR2 (12.2) 和 JDK 11
参考: 我指的是https://www.oracle.com/database/technologies/faq-jdbc.html#01_01
其中表示 ojdbc8.jar。现在ojdbc8已经发布了多个版本。
随Oracle 12.2一起发布的版本与JDK11不兼容。(https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html)
与 Oracle 19c (19.3) 一起发布的版本与 JDK11 兼容 ( https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19c-downloads.html )
所以我找不到使用 ojdbc jar 与 Oracle 12.2 和 JDK11 一起使用的明确解释。我可以将与 Oracle 19c 一起发布的 ojdbc8 jar 用于 Oracle 12.2/12cR2 吗?
我在使用CompletableFuture将代码转换为非阻塞代码时遇到了问题.为了最小化问题的范围,我创建了一个示例代码,当我使用CompletableFuture时,该代码的行为有所不同.问题是CompletableFuture从Runnable-delegation吞下异常.
我在Runnable和ExecutorService之上使用委托来提供我原始应用程序中所需的一些包装代码.
示例代码:
MyRunnable:我的示例runnable,它总是抛出异常.
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("This is My Thread throwing exception : " + Thread.currentThread().getName());
throw new RuntimeException("Runtime exception from MyThread");
}
}
Run Code Online (Sandbox Code Playgroud)DelegatingRunnable - 这是委托runnable,它委托并包装传递给它的Runnable的逻辑,以及用于异常处理的占位符.
public class DelegatingRunnable implements Runnable {
private Runnable delegate;
public DelegatingRunnable(Runnable delegate) {
this.delegate = delegate;
}
@Override
public void run() {
System.out.println("Delegating Thread start : " + Thread.currentThread().getName());
try {
// Some code before thread execution
delegate.run();
// Some …
Run Code Online (Sandbox Code Playgroud)我正在 Alpine 上安装 imagemagick,它安装了 7.0.10 版本的 imagemagick。
我的主要用途是将 WMF 转换为 PNG。但convert sample.wmf sample.png
给出错误
convert: no decode delegate for this image format `WMF' @ error/constitute.c/ReadImage/572.
convert: no images defined `sample.png' @ error/convert.c/ConvertImageCommand/3322.
Run Code Online (Sandbox Code Playgroud)
根据https://www.imagemagick.org/script/formats.php,我还安装了 libwmf,但这不能解决问题。
identify -list format | grep WMF
不返回任何结果。
我正在使用spring-security-oauth2来实现我的 OAuth2 授权服务器。spring-security-oauth2 即将消失,我知道我需要将其替换为spring-authorization-server
问题: 不同的客户端是否可以有不同的令牌到期时间(这里客户端代表客户端 ID/客户端秘密对)?
如果是,您能否分享文档/示例代码spring-authorization-server
?
如果不是,这是 spring-authorization-server 的限制还是 OAuth2 规范不允许?
(澄清一下,我并不是说在 spring-security-oauth2 中这是可能的,如果是的话我也想知道)
java ×2
alpine-linux ×1
csrf ×1
imagemagick ×1
java-11 ×1
java-8 ×1
javascript ×1
oauth-2.0 ×1
ojdbc ×1
security ×1
xss ×1