Als Reaktion auf eine Anfrage mit einem Cookie, das ein Nicht-ASCII-Zeichen enthält, scheint ColdFusion 11 abzustürzen. IIS 8.5 gibt einen HTTP 500 Internal Server Error (leere weiße Seite) zurück.ColdFusion 11 - 500 Interner Serverfehler von Nicht-ASCII-Cookie-Zeichen
Schritte zum Reproduzieren:
Führen Sie den folgenden in Javascript-Konsole und versuchen werden, CFML-Seite zu laden:
document.cookie="a=ñ";
(Optional) Fordern Sie .html oder .txt-Datei und erhalten normale Antwort.
Fordern Sie eine Seite ColdFusion an und erhalten Sie eine leere weiße Seite, HTTP 500 Internal Server Error.
Die einzige Problemumgehung besteht darin, Browser-Cookies zu löschen.
Umwelt:
- Windows Server 2012 R2 Standard
- IIS 8.5
- Cold Fusion 11 (Standard)
- Alle OS und Software neuesten gepatchten Versionen ausgeführt wird.
Ich habe versucht, -Dfile.encoding=UTF-8
zu den Java-Argumenten hinzuzufügen.
Ich habe niemanden gefunden, der auf dieses Problem bei ColdFusion stieß. Es gibt similar issues mit Java-Code auf Tomcat. Da ColdFusion 11 jedoch mit Tomcat ausgeliefert wird, weiß ich nicht einmal, welche Version von Tomcat läuft und wie es aktualisiert wird. (Es scheint, dass ColdFusion 10 Tomcat 7 ausführt.) Adobe scheint keine Dokumentation über die Tomcat-Ebene von ColdFusion 11 zu haben (speziell, wie es sich auf ColdFusion bezieht). Ich habe versucht, die -Konfiguration auf context.xml wie in diesem anderen Beitrag vorgeschlagen. Ich habe auf Adobe bug base geschrieben und erhielt keine Antwort.
Alle Ideen sind willkommen. Leider haben wir viele Benutzer mit "Español" in einem Cookie, und wir können keinen ColdFusion-Code ausführen, um dies zu löschen oder zu ändern. Wir haben nicht dieses Problem in Coldfusion 9 und verpassten dies in einem QS-Kontrolle nach Coldfusion Upgrade 11.
Voll Ausnahme von Coldfusion-error.log:
Sep 03, 2015 11:43:58 PM org.apache.coyote.ajp.AjpProcessor process
SEVERE: Error processing request
java.lang.IllegalArgumentException: Control character in cookie value or attribute.
at org.apache.tomcat.util.http.CookieSupport.isHttpSeparator(CookieSupport.java:193)
at org.apache.tomcat.util.http.Cookies.getTokenEndPosition(Cookies.java:502)
at org.apache.tomcat.util.http.Cookies.processCookieHeader(Cookies.java:349)
at org.apache.tomcat.util.http.Cookies.processCookies(Cookies.java:168)
at org.apache.tomcat.util.http.Cookies.getCookieCount(Cookies.java:106)
at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:986)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:743)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:417)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
pls Bericht zu https: //bugbase.adobe .com/ – Henry
Sind Nicht-ASCII-Cookies gültig? Ich dachte, nur US-ASCII-Zeichen, die CTLs, Leerzeichen, DQUOTE, Komma, Semikolon und Backslash-Zeichen ausließen, waren gültig. http://StackOverflow.com/a/1969339/693068 Können Sie eine IIS-Regel schreiben, um sie zu identifizieren und zu bereinigen? Können die OWASP-Funktionen von CF es erfassen? –
Ich habe TryCF.com für mich selbst gebrochen und versucht, dies zu testen. Nach dem Ausführen von document.cookie = "a = ñ"; Es würden keine Codebeispiele ausgeführt. Wenn Sie stattdessen CFCookie verwenden, wird der Cookie-Wert sicher als "% C3% B1" codiert. –