asp.net – Request.IsLocal是安全还是可以欺骗?
我有一个网页,在页面加载时检查加密的cookie以确定用户身份.但是,当我在我的开发盒上本地测试页面时,我无法访问该cookie.
以前我使用appsetting来告诉页面它是否处于开发模式,并且在dev模式下它将加载固定的用户身份.然后我发现了Request.IsLocal 我可以这样检查一下: if(Request.IsLocal){ FormsAuthentication.SetAuthCookie("testUser",false); }else{ FormsAuthentication.SetAuthCookie(/*EncryptedCookieValue*/,false); } 这样安全吗?恶意用户有什么方法可以欺骗IsLocal吗? 解决方法
我认为你的实际问题是,你如何才有开发功能?
你可以使用:Environment.UserInteractive 在IIS或Windows服务中运行时返回false,当它们是用户界面(即开发时的Visual Studio)时返回true. 我认为这比DEBUG预处理器变量更好,因为行为更加一致,您可能会意外地将dll的DEBUG版本上传到您的实时环境,除非您的构建/发布过程非常紧密. 根据经验,从客户端信任任何东西都不是一个好主意. 以下SO帖子介绍了您不应该信任它的一些原因: 参考 public bool IsLocal { get { String remoteAddress = UserHostAddress; // if unknown,assume not local if (String.IsNullOrEmpty(remoteAddress)) return false; // check if localhost if (remoteAddress == "127.0.0.1" || remoteAddress == "::1") return true; // compare with local address if (remoteAddress == LocalAddress) return true; return false; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 使用javascript和服务器端禁用/启用requiredFie
- 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内
- asp.net-mvc – 如何在ASP.NET Core中启用ClientCache
- asp.net-mvc – 实体框架验证的单元测试
- 实体框架 – 使用ASP.NET Web API和实体框架进行API版本控制
- asp.net – Windows Azure一般问题
- asp.net-mvc – ASP.NET MVC 3中字典的隐藏输入
- asp.net页面SqlCacheDependency缓存实例
- 【4】Asp.Net Core2.2中间件多扩展对应应用
- asp.net-mvc – 如何从asp.net mvc响应中删除s-maxage头文件
- 如何阻止IIS 8停止空闲的ASP.NET应用程序?
- asp.net-mvc – ASP.NET MVC 5(Visual Studio 20
- asp.net-mvc-3 – 具有DropDownList的可重用编辑
- asp.net-mvc-3 – 在MVC3中循环渲染部分视图
- Hangfire在ASP.NET CORE中的简单实现
- 如何为ASP.NET应用程序全局设置autocomplete = o
- asp.net-mvc – 在ASP.NET MVC Razor View中显示
- asp.net-mvc-3 – 如何使用DropdownList助手正确
- asp.net-mvc-2 – 我的MVC2站点需要一个crossdom
- asp.net-mvc – ASP.NET MVC不调用global.asax’