在我的一个应用程序中,我在HttpContext.Current.Request.Url
代码中使用aspx
来获取当前页面url
。由于页面url
正在java脚本中使用,因此很有可能在url
中传递恶意脚本以使JS函数中断。
一种选择是我们可以使用编码url
HttpUtility.HtmlEncode(HttpContext.Current.Request.Url)
但这段代码是用户控件(.ascx file
)的一部分,我必须在所有那些用户控件中更改它。
那么我有什么方法可以覆盖它
HttpContext.Current.Request.Url
属性,以便它将返回编码的url
?所以我可以使用一些处理程序来处理应用程序中的所有url
属性?
谢谢你的帮助。
您无法覆盖HttpUtility.HtmlEncode
,因为该方法是静态方法。
但我认为你可以尝试使用extension method做你的期望。
public static class UriExtension {
public static string HtmlEncode(this Uri uri){
HttpUtility.HtmlEncode(uri);
// do the logic...
}
}
你可以调用这个方法
HttpContext.Current.Request.Url.HtmlEncode()