小编Chr*_*her的帖子

使用CORS Origin头与CSRF令牌进行CSRF保护

此问题仅针对防止跨站点请求伪造攻击.

具体来说:通过Origin头(CORS)保护和通过CSRF令牌保护一样好吗?

例:

所以:

  • 如果我们不检查Origin头(服务器端),并且没有CSRF令牌,我们就有一个CSRF安全漏洞.
  • 如果我们检查一个CSRF令牌,我们是安全的(但它有点乏味).
  • 如果我们检查Origin标头,应该阻止来自evil.com的客户端代码的请求,就像使用CSRF令牌时一样 - 除非,如果有可能的话,evil.com的代码可以设置Origin标头.

我知道,如果我们相信W3C规范在所有现代浏览器中都能正确实现,那么XHR就不可能实现这一点(参见例如跨源资源共享的安全性),至少不是这样(我们可以吗?)

但是其他类型的请求呢 - 例如表单提交?加载脚本/ img/...标签?或者页面可以用来(合法地)创建请求的任何其他方式?或者也许是一些已知的JS黑客攻击?

注意:我不是在谈论

  • 原生应用,
  • 操纵浏览器,
  • example.com页面中的跨站点脚本错误,
  • ...

javascript security csrf cors

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

适用于不同类型资源的理想HTTP缓存控制标头

我想找到一个最小的标题集,它可以与"所有"缓存和浏览器一起使用(当使用HTTPS时也是如此!)

在我的网站上,我将有三种资源:

(1)永远可缓存(所有用户的公共/相等)

示例:0A470E87CC58EE133616F402B5DDFE1C.cache.html(由GWT自动生成)

  • 这些文件在更改内容时会自动分配新名称(基于MD5).

  • 他们应该尽可能地缓存,即使使用HTTPS(所以我认为,我应该设置Cache-Control: public,特别是对于Firefox?)

  • 如果内容已更改,则不应要求客户端往服务器进行往返验证.

(2)偶尔改变(所有用户公开/平等)

示例:index.html,mymodule.nocache.js

  • 部署新版本的站点时,这些文件会更改其内容而不更改URL.

  • 它们可以缓存,但可能需要往返才能每次都重新验证.

(3)每个请求的个人(私人/用户特定)

示例:JSON响应

  • 在任何情况下都不应将这些资源缓存到未加密的磁盘.(除非我有一些可以缓存的特定请求.)

我对每种类型可能会使用哪些标题有一个总体思路,但总有一些我可能会遗漏的东西.

https caching http http-headers

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

Java Collection的多个索引 - 最基本的解决方案?

我正在寻找在Java Collection上创建多个索引的最基本的解决方案.

所需功能:

  • 删除值后,必须删除与该值关联的所有索引条目.
  • 索引查找必须比线性搜索更快(至少与TreeMap一样快).

边条件:

  • 不依赖于大型(如Lucene)库.没有罕见或未经过良好测试的库.没有数据库.
  • 像Apache Commons Collections这样的库可以.
  • 更好的是,如果单独使用JavaSE(6.0).
  • 编辑:没有自我实现的解决方案(感谢答案暗示这一点 - 最好让他们在这里完整,但我已经有一个非常类似Jay的解决方案)每当有几个人发现,他们实现了同样的事情,这应该成为一些公共图书馆的一部分.

当然,我可以写一个自己管理多个地图的课程(这并不难,但感觉就像重新发明轮子一样).所以我想知道,如果没有它可以完成 - 同时仍然得到类似于使用单个索引java.util.Map的简单用法.

谢谢,克里斯

更新

它看起来好像我们没有找到任何东西.我喜欢你所有的答案 - 自我开发的版本,数据库类库的链接.

这就是我真正想要的:在(a)Apache Commons Collections或(b)Google Collections/Guava中使用这些功能.或许是一个非常好的选择.

其他人也会错过这些库中的这个功能吗?他们提供各种各样的东西,如MultiMaps,MulitKeyMaps,BidiMaps,......我觉得,它很适合这些库 - 它可以调用MultiIndexMap.你怎么看?

java indexing collections

48
推荐指数
5
解决办法
2万
查看次数

IDEA:"将语句分配给新的局部变量"?

作为Eclipse的长期用户,我正在使用IntelliJ IDEA 10进行一些操作.我似乎无法找到如何执行"将语句分配给新的局部变量"代码完成.

功能说明:

我输入类似的东西

new BufferedOutputStream(out)
Run Code Online (Sandbox Code Playgroud)

然后按Cmd (or Ctrl)+ 1并输入,Eclipse将该行更改为:

BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(out);
Run Code Online (Sandbox Code Playgroud)

同时,我可以立即键入"bufferedOutputStream"来重命名它(或从下拉列表中选择"bufferedOutputStream","outputStream"和"stream"选项).

我绝对会使用此功能完成所有任务,并且节省了大量时间 - 这也必须在IDEA中提供 - 但它隐藏在哪里?

java eclipse intellij-idea code-completion

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

GWT"数据库"(客户端)

我正在寻找像GWT对象的数据库(在浏览器中).它必须在没有HTML5或Gears(或任何浏览器插件)的情况下工作.它不必具备数据库可以执行的所有功能,但最重要的功能将是

  • 多列上的自动索引
  • 某种API或语言来执行(有限的子集)查询

它可能与Taffy DB有点类似,但它必须具有自动索引,并且它应该提供GWT API.我希望,如果它重新使用GWT库中的代码,它的下载大小将比Taffy更小.

(也许我应该补充一点,我不需要永久存储.没关系,如果在用户重新加载时必须重新加载/重新生成数据.)

javascript java gwt

26
推荐指数
1
解决办法
2710
查看次数

WebRTC流量是否通过TURN端到端加密?

WebRTC流量使用DTLS加密 - 好的.但是通过TURN服务器转发的流量呢?

我正在寻找一种可靠的资源来确认流量是真正的端到端加密(因为"端到端"有时可能意味着几件事).所以我的意思是

  • 并非对等体和TURN服务器之间存在"端到端"加密.

反而,

  • 这是同行之间的端到端
  • 这样它就不会在TURN服务器上解密/重新加密
  • 并且TURN服务器无法访问该秘密

我无法找到明确的答案.

security dtls webrtc

24
推荐指数
1
解决办法
9142
查看次数

httpOnly Session Cookie + Servlet 3.0(例如Glassfish v3)

默认情况下,Glassfish v3不会在会话cookie上设置httpOnly标志(与往常一样创建时request.getSession()).

我知道,有一种方法javax.servlet.SessionCookieConfig.setHttpOnly(),但我不确定,如果这是最好的方法,如果是的话,最好的地方就是放置那条线.

顺便说一句,当然不能在servlet本身中完成(例如在init()中):

java.lang.IllegalStateException: PWC1426: 
Unable to configure httpOnly session tracking cookie property for 
servlet context /..., because this servlet context has already been initialized
Run Code Online (Sandbox Code Playgroud)

通常,我更喜欢在web.xml中使用配置选项.

java servlets glassfish java-ee java-ee-6

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

Java的AES加速

我想加密/解密许多小的(2-10kB)数据.现在性能还可以:在Core2Duo上,我得到大约90 MBytes/s的AES256(当使用2个线程时).但是我可能需要在将来改进它 - 或者至少减少对CPU的影响.

  • 是否可以使用Java专用AES加密硬件(使用JCE,或者可能是不同的API)?
  • 如果我有更好的CPU,Java会利用特殊的CPU功能(SSE5?!)吗?
  • 或者有更快的JCE提供商?(我试过SunJCE和BouncyCastle - 没什么大不同.)
  • 其他可能性?

java encryption aes

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

JMockit有任何缺点吗?

这个比较表明,JMockit比其他框架有几个优点.

其他一个(JMock,EasyMock,Mockito,Unitils,PowerMock + Mockito/EasyMock)是否还有JMockit的优势?

java unit-testing jmockit jmock mockito

16
推荐指数
2
解决办法
5594
查看次数

使用Hibernate EntityManager(与Hibernate Core相比)的任何缺点?

Hibernate EntityManager文档声明:

根据项目的业务和技术需求,您可以结合使用这三者,没有JPA编程接口和生命周期的注释,甚至是纯本机Hibernate Core.您可以随时回退到Hibernate本机API,或者如果需要,甚至回归到本机JDBC和SQL.

使用JPA API(EntityManager)的代码显然更具可移植性(即使偶尔会回退到Hibernate Core).

但是在使用纯Hibernate Core时我会有什么优势吗?我想知道,如果JPA 2模型真的适合Hibernate Core而没有任何矛盾吗?IOW,是Core的后备总是简单而没有问题?

我主要担心的是:

也许差异不仅存在于API中,还存在于底层语义中?(例如,可能冲突的不同事务/版本控制/锁定语义:Core文档中提到了悲观锁定,但EntityManager文档中没有提到 - 因此我仍然可以通过回退到Core而不会导致问题来使用悲观锁定吗?这样的事情...... .)

java orm hibernate jpa jpa-2.0

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