Punkte in URL verursachen ColdFusion-Fehler
Ich habe derzeit Probleme mit Benutzern (oder Bots, nicht sicher), die nicht vorhandene Links besuchen, die drei Punkte in einem Unterverzeichnis haben.
Zum Beispiel, wenn jemand geht zu:
http://www.example.com/.../test/index.cfm?
Dann erhalte ich folgende Fehlermeldung:
String index out of range: -1 null
The error occurred on line -1.
Ich habe es mit nur 1 Periode und nur 2 Perioden getestet und es kommt direkt zu einem 404-Fehler. Jeder Link mit 3 oder mehr Punkten verursacht diesen Fehler.
Meine Frage ist, was kann ich tun, um dies zu verhindern? Meine Gedanken sind, sie zu einer 404-Fehlerseite zu senden oder sie umzuleiten. Wie könnte ich das machen?
Ich führe ColdFusion 8.0.1 unter Microsoft-IIS / 7.0 aus.
Bearbeiten von Miguel-F
Ich habe dieses Problem mit ColdFusion 9.0.1 auf IIS 7.5 dupliziert und es auch bei PCI-Scans bemerkt.
Error:
java.lang.StringIndexOutOfBoundsException
Stacktrace:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at
java.lang.AbstractStringBuilder.delete(Unknown Source) at
java.lang.StringBuffer.delete(Unknown Source) at
coldfusion.util.Utils.collapseDotDots(Utils.java:647) at
coldfusion.util.Utils.canonicalizeURI(Utils.java:601) at
coldfusion.filter.PathFilter.invoke(PathFilter.java:43) at
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at
coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28) at
coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at
coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at
coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at
coldfusion.CfmServlet.service(CfmServlet.java:201) at
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at
jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42) at
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at
jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at
jrun.servlet.FilterChain.service(FilterChain.java:101) at
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at
jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at
jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)