是否存在与将ASP.NET会话ID值留在html隐藏字段相关的安全问题?
它是为了在使用uploadify时解决一个问题,它是基于闪存工作的,并且在通过ajax请求发送正确的cookies到服务器时有已知问题(this link, look for 'STEP 6'),所以我在尝试根据基于会话的身份验证过程进行身份验证时遇到问题。
通过将SessionId值放入隐藏字段中,它允许我获取正确的值,并在global.asax上成功地解决了这个问题。
我是不是做错了什么?顺便说一句,im使用128位ssl加密。
谢谢!
编辑:重点是,如果会话ids总是出现在https post/request中,那么如果我将它们存储为post参数还是在http请求中发送的cookie值,有什么不同?如果有人可以拦截我请求并获取我的SessionId,那么实现身份验证的最佳方法是什么?
发布于 2011-09-03 07:16:13
是的,任何获得会话id的人都可以访问该用户的会话。这是一个很大的安全风险,由于许多人错误地将其用于自定义身份验证(您似乎正在这样做),这使情况变得更糟。
通过将其写入页面,您可以更容易地通过XSS技术和其他技术进行窃取。会话根本不安全,这就是为什么.NET有自己的身份验证方案,使用加密并与会话完全解耦。
我可以给你发送一个链接,设置你的cookie,等待你登录,分享相同的cookie,并访问你的所有详细信息,就像我是你一样。会话Id是一个随机令牌,根本没有加密。
实现身份验证的方法是通过.NET身份验证cookie,也可以选择使用MembershipProvider。这将基于服务器唯一的机器密钥创建加密的cookie。只有此服务器可以解密cookie,以便对用户进行身份验证。如果有人强加给你一个会话ID,或者窃取它,他们仍然不能以你的身份进行身份验证。
当然,有人也可以窃取您的身份验证cookie,但有一种选择是只通过SSL提供cookie,以防止这种情况发生,而且由于加密,它不能强加于您。
发布于 2011-09-03 07:25:06
它确实打开了一个安全漏洞,但它与使用无cookieless会话没有什么不同,后者将会话ID存储在URL中。
使用HTTPS会有所帮助。
https://stackoverflow.com/questions/7290079
复制相似问题