- /// <summary>
- /// BasePage 集成自权限基础抽象类FPage,其他页面则集成自BasePage
- /// </summary>
- public class BasePage : FPage
- {
- /// <summary>
- /// 默认构造函数
- /// </summary>
- public BasePage()
- {
- this.IsFunctionControl = true;//默认页面启动权限认证
- }
-
- /// <summary>
- /// 检查用户是否登录
- /// </summary>
- private void CheckLogin()
- {
- if (string.IsNullOrEmpty(Permission.Identity))
- {
- string url = string.Format("{0}/Pages/CommonPage/Login.aspx?userRequest={1}",
- Request.ApplicationPath.TrimEnd('/'), HttpUtility.UrlEncode(Request.Url.ToString()));
- Response.Redirect(url);
- }
- }
-
- /// <summary>
- /// 覆盖HasFunction方法以使权限类判断是否具有某功能点的权限
- /// </summary>
- /// <param name="functionId"></param>
- /// <returns></returns>
- protected override bool HasFunction(string functionId)
- {
- CheckLogin();
-
- bool breturn = false;
- try
- {
- breturn = Permission.HasFunction(functionId);
- }
- catch (Exception)
- {
- Helper.Alerts(this, "BasePage调用权限系统的HasFunction函数出错");
- }
- return breturn;
- }
-
- protected override void OnInit(EventArgs e)
- {
- Response.Cache.SetNoStore(); //清除缓存
- base.OnInit(e);
-
- CheckLogin();
- }
否则可能会受到攻击,并通过抓包软件发现页面数据,获得一些重要的用户名或者相关信息。
还有一个值得注意的地方,就是一般这种不是很安全的网络,最好要求输入比较复杂一点的密码(强制要求),例如不能全部是数字密码或者不能是纯字符,对位数也要求多一点,因为很多人输入12345678,123456,123这样的密码,很容易被猜出来并登录系统,造成不必要的损失。
6、总结性建议
针对上面发现的问题,提出下面几条建议。
1)在服务器与网络的接口处配置防火墙,用于阻断外界用户对服务器的扫描和探测。
2)限制网站后台访问权限,如:禁止公网IP访问后台;禁止服务员使用弱口令。
3)对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含SQL 或XSS特殊字符。这些检查或过滤必须在服务器端完成。
4)关闭windows的8.3格式功能。
5)限制敏感页面或目录的访问权限。