ASCII olmayan bir karakter içeren bir tanımlama bilgisine yanıt olarak ColdFusion 11 çöküyor. IIS 8.5 bir HTTP 500 İç Sunucu Hatası (boş beyaz sayfa) döndürür. JavaScript konsolunda aşağıdakiColdFusion 11 - 500 ASCII Olmayan Çerez Karakterinden Dahili Sunucu Hatası
Çalıştır ve herhangi CFML sayfasını yüklemek girişimi:
Yeniden oluşturma adımları
document.cookie="a=ñ";
(İsteğe bağlı) İsteği herhangi .html veya .txt dosya ve normal almak tepki.
Herhangi bir ColdFusion için bir sayfa isteyin ve boş bir beyaz sayfa, HTTP 500 İç Sunucu Hatası.
Tek çözüm, tarayıcı çerezlerini temizlemektir.
Çevre:
- Windows Server 2012 R2 Standard
- IIS 8.5
- Cold Fusion 11 (Standart)
- tüm işletim sistemi ve yazılım son yamalı sürümleri çalıştırıyor.
Java argümanlarına -Dfile.encoding=UTF-8
eklemeyi denedim.
ColdFusion'da bu konuyla ilgili başka bir çalışan bulamadım. Tomcat üzerinde similar issues çalışan Java kodu vardır. Ancak ColdFusion 11, Tomcat ile birlikte sunulduğundan, Tomcat'in hangi sürümünün çalıştığını ve nasıl yükseltileceğini bile bilmiyorum. (ColdFusion 10, Tomcat 7'yi çalıştırır.) Adobe, ColdFusion 11'in Tomcat katmanıyla (özellikle de ColdFusion ile nasıl ilişkili olduğu) ilgili belgelere sahip değildir. <CookieProcessor />
yapılandırmasını context.xml'ye diğer gönderide önerildiği gibi uygulamayı denedim. Adobe bug base'a gönderdim ve yanıt almadım.
Herhangi bir fikir kabul edilir. Maalesef bir çerezde "Español" ile çok sayıda kullanıcımız var ve bunu temizlemek veya değiştirmek için ColdFusion kodunu çalıştıramıyoruz. Biz ColdFusion 9'da bu sorun var ve ColdFusion yükselttikten sonra bir KG kontrol altında bu cevapsız vermedi 11.
coldfusion-error.log gelenTam istisna:
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)
lütfen raporunu: Burada
çerez (/clearCookie.htm) silmek için bazı örnek kod //bugbase.adobe .com/ – Henry
ASCII olmayan çerezler geçerli mi? CTL, boşluk, DQUOTE, virgül, noktalı virgül ve ters eğik çizgi karakterleri hariç sadece US-ASCII karakterlerinin geçerli olduğunu düşündüm. http://stackoverflow.com/a/1969339/693068 Tanımlamak ve sterilize etmek için bir IIS kuralı yazabiliyor musunuz? CF'nin OWASP özellikleri onu yakalayabilir mi? –
Bunu denemek için TryCF.com'u kendim kırdım. Document.cookie = "a = ñ" çalıştırdıktan sonra; Hiçbir kod örneği çalıştırılamaz. Bunun yerine CFCookie kullanırsanız, çerez değeri güvenli bir şekilde "% C3% B1" şeklinde kodlanır. –