启明星系统推荐是安装在内网里,因此,系统采用了较为简单的身份验证。对于放在公网里的启明星系统,请务必开启ASP.NET身份验证功能。
身份验证与授权其实是安全的两个方面:所谓身份验证,就是你有没有钥匙进入房间,所谓授权,就是你进入房间可以打开哪个抽屉。
开启启明星身份验证相当于让攻击装无法进入房间,自然无法攻击。但是,如果攻击者进入房间后,就可能执行SQL注入。
要开启身份验证,只要在web.config里增加如下配置即可。
另外,还需要让用户将密码复杂度设置复杂些,否则,就如同虚设。如下,
<asp:RegularExpressionValidator ControlToValidate="txt_pwd" ValidationExpression="^.*(?=.{8,})(?=.*[d])(?=.*[W]).*$" runat="server" ID="pwd_rule" ErrorMessage="密码必须8位,必须包含一个数字和一个特殊字符"></asp:RegularExpressionValidator>
以上配置将强制IIS采用ASP.NET内置身份验证,安全性极高!!
-------------------------------------以下不是必须,仅供部分用户需要方便使用。-----------------------------------------------------------------------------------
对于放到公网上的用户,上面基本上能给很好的满足系统的安全性。不过可能希望系统自动记住用户登录名和密码。其实在我们的登录代码里
HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Path = path; HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires = DateTime.Now.AddDays(7);
可是你会发现已经让浏览器记住账户了,但是当增加了 <deny users="?" /> 后,系统似乎记不住cookie,基本上没半天访问还是需要登录。
这是因为ASP.NET会在系统运行时,会自动生成随机的计算机密钥。您可以通过如下方法,来强制ASP.NET使用唯一密钥。
打开IIS。左边选择你的应用程序。然后在右边找到计算机密钥
从图中可以看到,在应用程序每次运行时,系统都随机生成一个计算机密钥。
单击右边的“生成密钥”
单击应用
此时,系统会自动在web.config增加machieKey密钥。这样,使用Form身份验证,就可以记住您的账户了。
安全与方便总是矛盾的,采用固定密钥方便了登录,但是如果密钥被公开,可能安全性会稍微降低。