findmyangel / kaptcha

Automatically exported from code.google.com/p/kaptcha
Other
1 stars 0 forks source link

IE 8.0 makes duplicate requests to the captcha servlet #55

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I recently started noticing that IE 8.0 running on Windows XP is making 
multiple requests on the captcha image.  As a result of that the image that is 
displayed does not match the actual result in the session.  And the validation 
always fails.

I am wondering if this problem has anything to do with the "must-revalidate" 
being set along with "no-cache" on the response header.

Rubens.

Original issue reported on code.google.com by rubens.s.gomes on 4 Nov 2010 at 4:08

GoogleCodeExporter commented 8 years ago
This is the first report of this I've heard of. Try changing the code and see 
what effect it has. =)

Original comment by latch...@gmail.com on 4 Nov 2010 at 5:39

GoogleCodeExporter commented 8 years ago
no response from the submitter.

Original comment by latch...@gmail.com on 16 Nov 2010 at 8:32

GoogleCodeExporter commented 8 years ago
I'm having the same problem with IE 8 but I'm using Windows Vista, so I think 
that this is not a OS problem. Any idea? 

Original comment by david...@gmail.com on 17 Feb 2011 at 1:28

GoogleCodeExporter commented 8 years ago
I saw that the issue 48 also talks about this problem.

I'm using the latest version of Karptcha ( 2.3.2 ).

Thanks.

Original comment by david...@gmail.com on 17 Feb 2011 at 1:30

GoogleCodeExporter commented 8 years ago
Updating. 
I changed the code on debug.

I did this:

// Set standard HTTP/1.1 no-cache headers.
resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");

Changed to:
resp.setHeader("Cache-Control", null);

It works in IE 8 and Firefox. It does only one request and the image 
corresponds to the expected value.

Original comment by david...@gmail.com on 17 Feb 2011 at 1:42

GoogleCodeExporter commented 8 years ago
Hi,  I have noticed that this problem in IE 8 at my Dell Windows XP laptop 
computer.  However, here at work, I also have IE 8, running on Windows XP, and 
it works.  There is something weird about that IE 8 version on my laptop that 
must be causing this issue.  Maybe, some add-ons, other libraries, etc.

On the same point about IE, I recently discovered a very interesting issue with 
AJAX on IE (only IE, again).  I changed the AJAX call to go over SSL in one 
autocompleter field, and that stopped working.  Even though I had another 
autocompleter running the exact same library (Scrip-aculous + prototype) on 
another field going over SSL that works.  I have looked at server logs, and all 
is good there.  I have tried on other browsers (Firefox, Opera, Chrome), and it 
works.  I have refreshed IE, restarted server, restarted PC...  Problem 
remains. Next steps (?)

Original comment by rubens.s.gomes on 17 Feb 2011 at 4:36

GoogleCodeExporter commented 8 years ago
I am having the saming problem. I tried the following responses:

1)resp.setHeader("Cache-Control", null);
2)resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
3)response.setHeader("Cache-Control", "private, no-store, no-cache");

All of the above have generated the same error in IE 8 + Windows Vista. However 
it is ok for Firefox and Chrome.

Anyone have solved it?

Original comment by ccaldas@gmail.com on 10 Aug 2011 at 6:10

GoogleCodeExporter commented 8 years ago
I am back to report issues with IE 8 making duplicate requests for kaptcha.  
The first request comes back with captcha word.  And before the user inputs the 
captcha, another subsequent request is made which invalidates the previous 
captcha that is already displayed on the page.  Now, the user types the 
previous captcha (displayed onthe page), and result is invalid.

This is not a problem on Firefox.

I am considering moving to another captcha (SimpleCaptcha) due to this 
unresolved issued with IE.

Rubens.

Original comment by rubens.s.gomes on 22 Aug 2011 at 2:44

GoogleCodeExporter commented 8 years ago
I don't have IE8 to test with, so unless you help figure out the issue, this 
isn't going to get fixed. If you want to use another solution, feel free. ;-) 
Please try the suggestion in #5 and let me know. If that fixes it, then I will 
commit it. The issue with that solution is that you don't really want the 
browser to cache the image either.

Original comment by latch...@gmail.com on 22 Aug 2011 at 4:20

GoogleCodeExporter commented 8 years ago
I just tested SimpleCaptcha version 1.2.1 with IE 8, and it is working fine.  I 
am switching to SimpleCaptcha.

Thanks,

Rubens.

Original comment by rubens.s.gomes on 22 Aug 2011 at 7:58

GoogleCodeExporter commented 8 years ago
This issue was closed by revision r135.

Original comment by latch...@gmail.com on 22 Aug 2011 at 8:05

GoogleCodeExporter commented 8 years ago
Rubens,

I just looked at the source for simplecaptcha and made kaptcha return the same 
exact headers.

cheers,

jon

Original comment by latch...@gmail.com on 22 Aug 2011 at 8:07

GoogleCodeExporter commented 8 years ago
Hi Jon, 

This is killing me.  I am now back to the IE 8 issue using simplecaptcha 1.2.1. 
 I am using a front-end Apache HTTP proxy in front of Tomcat 6 -- using the 
modjk (i think).  I am wondering if this is related.

BTW,  if you go to this page:

1) http://www.ezlista.com
2) select forgot password link
3) that page has the captcha that does not work from IE 8.

Rubens.

Original comment by rubens.s.gomes on 22 Aug 2011 at 8:47

GoogleCodeExporter commented 8 years ago
I really have no idea why people put an apache proxy in front of tomcat. There 
*really* is no benefit to doing that.

That said, ensure that the headers are being passed from the proxy to the 
tomcat instance.

Original comment by latch...@gmail.com on 22 Aug 2011 at 8:49

GoogleCodeExporter commented 8 years ago
Yes.  I know.  I am in the process of pulling tomcat + apache integration back. 
  However, I would like to point out that I don't have issues with Firefox.  It 
works with Firefox, Google Chrome.  I only have this issue with IE 8.

Thanks,

Rubens.

Original comment by rubens.s.gomes on 22 Aug 2011 at 9:05

GoogleCodeExporter commented 8 years ago
As I said before, please try the suggestion in #5 and let me know.

Original comment by latch...@gmail.com on 22 Aug 2011 at 9:14

GoogleCodeExporter commented 8 years ago
Ok. I did the following change on simplecaptha (which has similar issue), and 
it fixed the problem. I removed "must-revalidate" from Cache-Control.

resp.setHeader("Cache-Control", "no-store, no-cache");

Notice, that the suggestion given on #5 above to set the "Cache-Control" to 
null did *NOT* work here under IE 8 running on Windows XP.

Original comment by rubens.s.gomes on 23 Aug 2011 at 12:04

GoogleCodeExporter commented 8 years ago
ok, i've updated the kaptcha source code to have just those headers. let me 
know if it works for you.

Original comment by latch...@gmail.com on 23 Aug 2011 at 12:06

GoogleCodeExporter commented 8 years ago
I am sorry.  I confess that this IE duplicate requests are driving me nuts.  
The issue sometimes intermittently works.  And when I tested once I thought I 
had fixed.  Anyway, IE insists in doing this  background revalidation of the 
captcha image.  I notice that it happens sporadically when I click inside the 
form input field, and *EVEN* when I click on a link to go to another page.  
Here is what I have tried to no avail.

        resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, Post-Check=0, Pre-Check=0");
        resp.setHeader("Pragma", "no-cache");
        resp.setHeader("Expires", "Thu, 19 Nov 1981 08:52:00 GMT");
        resp.setContentType("image/jpg");

Original comment by rubens.s.gomes on 24 Aug 2011 at 9:16