Security Url重写-这会导致安全问题吗?
您好,我最近阅读了JSP,了解了它的技术,主要是session。在session下,我阅读了URL重写方法之一,该方法是为了维护与客户机的会话而执行的。但由于URL重写会使用会话ID更改URL,因此客户端可以看到该URL。 这不是安全问题吗?比如说,如果有人把这个会话ID和特定的用户分开,并且可能会不好地使用它?或者有技术可以防止这些Security Url重写-这会导致安全问题吗?,security,jsp,session,Security,Jsp,Session,您好,我最近阅读了JSP,了解了它的技术,主要是session。在session下,我阅读了URL重写方法之一,该方法是为了维护与客户机的会话而执行的。但由于URL重写会使用会话ID更改URL,因此客户端可以看到该URL。 这不是安全问题吗?比如说,如果有人把这个会话ID和特定的用户分开,并且可能会不好地使用它?或者有技术可以防止这些 如果我错了,请纠正我。我相信你指的是无烹饪课程。尽管我在Java圈子里见过它被称为“url重写” 还有一些额外的会话劫持问题(它们适用于所有支持无Cookie会话
如果我错了,请纠正我。我相信你指的是无烹饪课程。尽管我在Java圈子里见过它被称为“url重写” 还有一些额外的会话劫持问题(它们适用于所有支持无Cookie会话的web开发框架,而不仅仅是JSP)。但即使使用cookie,会话劫持也是可能的 这里有一篇关于MSDN的非常深入的文章,介绍了无cookieless会话及其风险/好处。同样,这些都是平台不可知论
(底部)当然这是一个安全问题。如果您很快注意到
jsessionid
值,或者是其他人错误地在公共复制粘贴的URL中看到的值,或者是某个HTTP调试工具(Firebug)在公共发布的屏幕截图中看到的值,其中显示了请求/响应头,并且相关网站通过登录维护用户,然后,只需将jsessionid
cookie添加到URL或请求头,就可以在同一用户下登录。很快,因为默认情况下,这些会话会在30分钟不活动后过期。这叫做攻击
您可以完全禁用URL重写,以便jsessionid
永远不会出现在URL中。但是你仍然对会话固定攻击很敏感,一些黑客可能在公共网络中安装了HTTP流量嗅探器,或者被某些特洛伊木马/病毒感染,甚至使用XSS来了解这些cookie。需要明确的是,这个安全问题并不是特定于JSP的,PHP、ASP或任何通过基于Cookie的会话维护登录的网站对这个问题同样敏感
为了确保登录的安全,让登录和登录的流量通过HTTPS而不是HTTP,并使cookie仅为HTTPS(安全)。在大多数(如果不是所有)安全圈中,不鼓励URL重写会话cookie。OWASP ASV明确禁止使用它,因为它会通过不安全的介质暴露会话标识符 当启用会话cookie的URL重写时,URL可能会(与会话标识符一起)传输到其他站点,从而导致通过HTTP Referrer标头泄露会话标识符。事实上,浏览器对位于另一个域上的资源的简单请求将导致可能的劫持(通过中间人攻击)或会话固定;这相当于站点中的跨站点脚本漏洞
另一方面,当站点执行Cookie的URL重写时,不能再使用其他保护机制,如引入到各种浏览器中的HttpOnly和Secure Cookie标志,以不同方式保护会话Cookie。,但是为什么这不是特定于JSP的呢?JSP
HttpSession
由JSSessionID
cookie支持。PHP$\u会话
由PHPSESSID
cookie支持。ASPSession
由ASPSESSIONID
cookie支持。如果您将登录用户存储在会话中,那么哪种语言更敏感与否并不重要。JSPjsessionid
只是更多的新闻,因为一些Java服务器/框架默认启用了URL重写。哦,好吧,我误解了你所说的,谢谢你的回答。所谓会话固定实际上就是会话劫持。劫持意味着攻击者使用受害者的会话id。会话固定意味着攻击者让受害者使用攻击者准备好的会话,例如,让他们请求包含攻击者会话id的链接。有人能提供更多信息吗“您可以完全禁用URL重写,以便jsessionid永远不会出现在URL中”