解决方法
如果要覆盖ASP.NET中的某些工作方式,将其构建到基类中而不是将代码包含在每个页面中更为有效.我这样做的两个具体实例是:
的IsPostBack
鲜为人知的事实:提出一个请求,ASP.NET看起来像一个回发,但是提交了GET请求是非常可行的.谁做这个黑客,那是谁.在这种情况下,IsPostback的调用将返回true,但是它真的返回false.要做到这一点,构建一个覆盖IsPostBack的基类:
Public Class MyBase Inherits System.Web.UI.Page <DebuggerStepThrough()> _ Public Shadows Function IsPostback() As Boolean 'Check the built-in IsPostback and make sure this is a HTTP POST Return (Page.IsPostBack AndAlso Request.HttpMethod.toupper = "POST") End Function End Class
错误处理
在Beginning ASP.NET Security,Blowdart中讨论了如果您使用ASP.NET的错误处理将客户端重定向到自定义错误页面,则黑客(再次)可以检测重定向并将其标记为可能被利用的错误.更安全的模式是处理页面的错误事件并执行Server.Transfer(不向客户端发送任何内容).再次,在基类中这样做意味着你只需编写代码一次:
public partial MyBase : System.Web.UI.Page { protected void Page_Error (object sender,EventArgs e) { Exception ex = Server.GetLastError(); // Do something with the exception e.g. log it ... Server.Transfer("~/mycustomerrorpage.aspx"); } }
原文地址:https://www.jb51.cc/aspnet/245676.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。