IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性处理办法
原因分析:
服务器开启了Https时,cookie的Secure属性应设为true;
解决办法:
1.服务器配置Https SSL方式,参考:https://support.microsoft.com/kb/324069/zh-cn
2.修改web.config,添加:
See: http://msdn.microsoft.com/en-us/library/ms228262(v=vs.100).aspx
3.修改后台写Cookies时的设置 cookie.Secure = true:
HttpResponse response= HttpContext.Current.Response;
var cookie = new HttpCookie(key, value);
cookie.HttpOnly = true;
cookie.Path = "/";
cookie.Expires = DateTime.Now.AddHours(1);
cookie.Secure = true;
response.AppendCookie(cookie);
参考网站:http://stackoverflow.com/questions/5978667/how-to-secure-the-asp-net-sessionid-cookie
IBM AppScan 安全扫描:支持弱 SSL 密码套件
解决方法:
1.Server 2008(R2)
根据appScan的修订建议访问地址:http://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx
里面说了如何修改SSL 密码套件的优先级和状态,里面有一堆的加密方式,很难知道哪些该保留,哪些改去掉(其实AppScan里面已经有提示哪些该去掉);
经过一番资料查找,有一个名叫IIS Crypto的软件工具,专门用来解决上面的问题;
软件地址:https://www.nartac.com/Products/IISCrypto/Default.aspx
运行软件设置他推荐的加密方式,然后重启系统,再次扫描时,就不会报这个漏洞了。
参考资料:
1.http://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx
2.http://security.stackexchange.com/questions/48325/identify-and-disable-weak-cipher-suites
3.https://www.nartac.com/Products/IISCrypto/Default.aspx
web安全之跨站请求伪造
CSRF
CSRF(Cross-site request forgery),中文名称:跨站请求伪造.
因为这个不是用户真正想发出的请求,这就是所谓的请求伪造;因为这些请求也是可以从第三方网站提交的,所以前缀跨站二字。
CSRF发生的场景如下图所示:
用户登录访问了一个受信任的站点,
在用户还没有退出登录的时候,打开另外一个tab页,访问了网站B。
在B网站中,有CSRF攻击代码访问网站A。
发生的原因是,网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个
标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie。
1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。
你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。
是的,确实如此,但你不能保证以下情况不会发生:
1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
2.你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。
(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于
退出登录/结束会话了)如记住密码功能等。
3.上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。
下面来看一个代码实例,在网站A发布了下面的代码
用户login,然后可以在input.jsp提交数据,提交的数据被dataupdate.jsp更新到后台。
dataupdate.jsp会检查用户是否登录,如果没有登录会跳到login.jsp要求用户登录。
[html]viewplaincopyprint?
1. login.jsp
2.
3. action="input.jsp"method="post">
4. nametype="text"name="name"size="50">
5. pwdtype="password"name="password"size="50">
6. type="submit"value="submit">
7.
8.
9.
10.