前段时间做了一家国外公司的门互网站,按照公司的流程必须要进行安全扫描后才允许上线。于是我就开始了苦逼安全漏洞修复之旅。
A2 Broken Authentication and Session Management,A4 - Insecure Direct Object References,A7 - Missing Function Level Access Control
1、不要相信任何用户提交上来的数据,尤其是在涉及到账户安全的页面,前台校验过的数据后台必须同样的进行校验。
2、涉及到用户的密码修改的时候必须输入旧密码
3、由于之前的需求允许用户修改邮箱地址(或登录名),用户可以进行修改邮箱地址为他人的邮箱,然后就可以用他人的账号登录了(这块需要确认)。
4、用户登录成功以后应重新分配一个SESSIONID(用来预防session fixation attacks攻击)。
Cross-Frame Scripting(跨框架脚本攻击)
如果没有做过任何安全措施的话,黑客可以使用一个自己做的网页使用IFRAME然后嵌套着你的网址,然后将黑客自己的网址发送给他人,然后窃取他人的资料。修改方法如下:
1、打开IIS,选择自己的站点,然后选择“内容视图”,然后双击"HTTP响应标头".
2、右键选择“添加...”,名称栏输入"X-Frame-Options",值栏输入"SAMEORIGIN".
Transport Layer Protection: Weak SSL Protocol(弱SSL协议)
当使用SSL传输的时候必须要禁用一些有安全隐患的加密策略。比如禁止SSL3.0及以下版本的加密策略,推荐使用TLS1.0及以上版本。
解决办法:从nartac下载工具对加密策略进行配置。
Cookie Security: Cookie Not Sent Over SSL(Cookie未使用SSL传输)
在Web.Config里配置如下
<httpCookies httpOnlyCookies="true" requireSSL="true"/>
但是如果加上该内容,除非使用SSL,否则无法存储COOKIE
Poor Error Handling: Unhandled Exception
这个BUG非常奇妙,我的网站本来都已经加入了错误处理机制,如果发生错误则会自动跳转致错误页面。但是如果在页面后面加入/aux 则不会触发机制直接报错。后来调了很久发现AUX是DOS系统时代保留的系统文件名。和PRO,CON一样。
解决方法:在Web.Config下添加如下内容
<httpRuntime relaxedUrlToFileSystemMapping="true" targetFramework="4.5" />