2013-10-24 14 views
5

現在、サブディレクトリに3つのピリオドがある存在しないリンクを訪問しているユーザー(または不明なボット)に問題が発生しています。URLのピリオドがColdFusionエラーの原因となる

例えば、誰かがに行く場合:

http://www.example.com/.../test/index.cfm?

その後、私は、次のエラーが表示さ:

String index out of range: -1 null 
The error occurred on line -1. 

を私はちょうど1時間でそれをテストし、わずか2期間と、それは行くしていますまっすぐ404エラーに。 3つ以上のピリオドを持つリンクであれば、このエラーが発生します。

私の質問は、これを止めるために何ができるのですか?私の考えは、404エラーページにそれらを送信するか、それらをリダイレクトすることです。どうすればいい?

Microsoft-IIS/7.0上でColdFusion 8.0.1を実行しています。ミゲル-Fから

編集

私は、IIS 7.5上のColdFusion 9.0.1でこの問題を複製しても、PCIスキャン中に、それに気づきました。

エラー:

java.lang.StringIndexOutOfBoundsException 

スタックトレース:

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) 
+1

このエラーはどこに表示されますか?それはプラグインやブラウザからのものかCFから直接のものなのでしょうか? –

+0

私は、ColdFusion 9.0.1とIIS 7.5を使用して同じエラーが発生することに気付きました。 –

+0

CF 9.02 + IIS 7.5と同じです。組み込みサーバーのCF 10にこの問題があります。 Railoもエラーを投げます。 http://stackoverflow.com/questions/19594577/periods-in-url-cause-railo-error –

答えて

0

あなたがIIS上にあるので、私はあなたがHTTP 400 (bad request) Errorを傍受して送信するためにIIS URL rewriteを使用することができ思うだろう。

Coldfusionに達する前にそれをキャッチします。

+0

私はURL書き換えルールを作成しましたが、それに運がありませんでした。ここに私が設定したもののスクリーングラブがあります:http://i.imgur.com/ZXjMzTy.png – ethanh

関連する問題