Asp.net mvc ASP.Net MVC、JS注入和System.ArgumentException-路径中的非法字符
在我的ASP.NETMVC应用程序中,我使用自定义错误处理。 我想为我在应用程序中遇到的每个错误情况执行自定义操作 因此,我覆盖应用程序_错误,获取服务器.GetLastError()强> 根据例外情况、当前用户、当前URL(应用程序在多个域上运行)、用户IP和许多其他内容执行我的业务 显然,应用程序经常是黑客的目标。 在几乎所有情况下,检测和管理它都不是问题,但对于某些JS URL攻击,我的错误处理并没有执行我希望它执行的操作。 Ex(从日志中): 当我得到这样一个URL时,在访问web.config中的ConnectionString部分时会引发异常,我甚至无法重定向到另一个URL 它会导致“System.ArgumentException-路径中的非法字符等。” 下面的屏幕截图显示了问题: 一个显而易见的解决方案是编写一个HTTP模块,在URL到达我的应用程序之前对其进行过滤,但我希望避免这样做,因为:Asp.net mvc ASP.Net MVC、JS注入和System.ArgumentException-路径中的非法字符,asp.net-mvc,Asp.net Mvc,在我的ASP.NETMVC应用程序中,我使用自定义错误处理。 我想为我在应用程序中遇到的每个错误情况执行自定义操作 因此,我覆盖应用程序_错误,获取服务器.GetLastError() 根据例外情况、当前用户、当前URL(应用程序在多个域上运行)、用户IP和许多其他内容执行我的业务 显然,应用程序经常是黑客的目标。 在几乎所有情况下,检测和管理它都不是问题,但对于某些JS URL攻击,我的错误处理并没有执行我希望它执行的操作。 Ex(从日志中): 当我得到这样一个URL时,在访问web.conf
- 我喜欢在一个地方管理整个安全性(在应用程序\u Error()方法中)
- 在模块中,我无法访问应用程序本身中的全部数据(我不想在这里讨论应用程序特定的数据)
您可以发布堆栈跟踪/内部异常详细信息吗?
http://localhost:1809/Scripts/]||!o.support.htmlSerialize&&[1
System.ArgumentException: Illegal characters in path.
at System.IO.Path.CheckInvalidPathChars(String path)
at System.IO.Path.Combine(String path1, String path2)
at System.Web.Configuration.UserMapPath.GetPhysicalPathForPath(String path, VirtualDirectoryMapping mapping)
at System.Web.Configuration.UserMapPath.GetPathConfigFilename(String siteID, VirtualPath path, String& directory, String& baseName)
at System.Web.Configuration.UserMapPath.MapPath(String siteID, String path)
at System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull)
at System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath, Boolean permitNull)
at System.Web.CachedPathData.GetPhysicalPath(VirtualPath virtualPath)
at System.Web.CachedPathData.GetConfigPathData(String configPath)
at System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp)
at System.Web.HttpContext.GetFilePathData()
at System.Web.HttpContext.GetConfigurationPathData()
at System.Web.Configuration.RuntimeConfig.GetConfig(HttpContext context)
at System.Web.HttpContext.get_ImpersonationToken()
at System.Web.ClientImpersonationContext.Start(HttpContext context, Boolean throwOnError)
at System.Web.HttpApplication.ThreadContext.Enter(Boolean setImpersonationContext)
at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext)
at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)