java – 通过质询/响应来保护会话的每个请求?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 通过质询/响应来保护会话的每个请求?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2424字,纯文字阅读大概需要4分钟。
内容图文
![java – 通过质询/响应来保护会话的每个请求?](/upload/InfoBanner/zyjiaocheng/792/7826da025caf41eb94a5114da8af6178.jpg)
我们需要设计一个安全的Web应用程序.我想提出一种会话处理机制,它对每个请求都进行质询 – 响应,而不仅仅是在使用CRAM方法登录时.
原因是强化Web应用程序以防止会话劫持(例如,到CSRF)和重放或中间人攻击.
在某些地方建议使用nonce,但在我们的webapp中,它似乎不切实际,因为异步请求可以继续,或者用户可以打开新窗口,点击后退按钮等.
想法:客户端和服务器具有共享秘密(先前建立的用户密码),每个后续请求再次基于该秘密进行质询/响应,例如’response = hash(challenge hashedPassword)’.仅当对质询的响应匹配时,服务器才执行请求.很像CRAM期间,但每个请求都在进行中.
问题:这是一个可行的想法吗?如果是这样,它肯定已经实施或甚至是一些标准?我们如何在基于java或php的webapp中使用它?
解决方法:
问题实际上归结为你想要实现的目标.如果你想对抗CSRF攻击,除了会话密钥之外还有一个秘密令牌是你的方法.但是,在每个请求中更改令牌都会导致问题 – 不仅后退按钮会终止会话,而且因为一个网页通常包含大量异步和并行加载的数据(图像,css,javascript等),所以之后不会启用任何其他数据,因为每个附加请求都会更改所需的令牌,从而终止会话.
您可以通过BASE64和其他技巧将所有资源嵌入到页面中来解决这个问题,但这会严重影响您的可能性,并且可能与某些浏览器存在兼容性问题.
因此,最终,您的方法不会增加太多安全性,但很可能会为您的客户带来一系列潜在问题.我会坚持在URL中每个会话使用一个秘密令牌来对抗CSRF,并集中精力防范其他攻击,如XSS和用户友好的安全措施,如智能手机或类似的双因素身份验证.毕竟,用户现在是#1攻击向量.
更新(2012-06-14)
该令牌不会对抗XSS攻击,但它可以防御基本的CSRF攻击(例如,通过在图像中植入伪造的URL呼叫).我今天确实遇到了工作情况,我需要确保一个针对用户修改和worked up some code的get请求.代码也可用于保护静态,会话超时形式和链接令牌(对你的问题) .
我们的想法是拥有一个服务器密钥,用于生成数据的哈希/ AuthToken以保证安全.如果流氓javascript会尝试更改任何给定数据,则AuthToken将不匹配.在我的具体问题中,我有一个服务器验证用户,并且必须将他的信息发送给第三方(用户名,mailaddress,名称等).验证后,任何用户都可以轻松更改此GET-Request,因此我必须验证GET-Request-Parameters.通过重新运行AuthenticationToken-Process,第三??方可以比较生成的AuthTokens,从而验证传入的数据.没有共享的秘密,伪造数据是(接近)的.
关于你的问题:在GET和POST请求(或像我的项目这样的动态请求)上拥有静态令牌将保护您免受简单的CSRF攻击,例如:论坛中的链接,用户必须点击才能受到攻击.由于链接永远不会包含正确的令牌,因此您的网页是安全的.但是,如果攻击者设法通过XSS将javascript加载到网页中,那么你就搞砸了,世界上没有任何技术可以帮助它,因为javascript可以扫描页面的整个DOM树来查找任何令牌的捕获任何.
所以,它归结为:
>在GET和POST请求上使用令牌来对抗CSRF
>确保您的网页免受XSS注入
内容总结
以上是互联网集市为您收集整理的java – 通过质询/响应来保护会话的每个请求?全部内容,希望文章能够帮你解决java – 通过质询/响应来保护会话的每个请求?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。