Forum Discussion
Sam_Parkes_1110
Nimbostratus
Dec 04, 2009check if browser's cookies are enabled
Hi I've been looking through the forums, but cant find a way of using the F5 to check if a browser's cookies are enabled before continuing to serve requests to it? Is there a way of doing this with an iRule? Apologies if this has already been written in the forum somewhere.
Thanks,
Sam.
4 Replies
- hoolio
Cirrostratus
Hi Sam,
If you can figure out how you want to test whether clients support session and/or persistent cookies you could probably use an iRule which sends the HTML and parses the subsequent requests. Here are a few examples found searching for 'check browser cookies enabled':
http://techpatterns.com/downloads/javascript_check_cookies.php
http://www.html-kit.com/tools/cookietester/
http://www.velocityreviews.com/forums/t73185-detect-if-cookies-are-enabled.html
The way this is done on Microsoft Office Online is that we have a page which
tries to set a session cookie and a permanent cookie; this page then
redirects to a page which tests for those cookies. If they're not both
present, that page then redirects to a "you need to enable cookies" error
page.
You can send the HTTP response using HTTP::respond and check for cookies in the request using HTTP::cookie exists.
Aaron - Sam_Parkes_1110
Nimbostratus
Thanks Aaron,
I've got something working for now:
when HTTP_REQUEST {
if { ([HTTP::uri] starts_with "/landingPage.form") and [HTTP::cookie exists "cookies"] } {
return
}
elseif { [HTTP::uri] starts_with "/landingPage.form" } {
HTTP::respond 301 Location "http://my.domain.com/landingPage.form" Set-Cookie cookies=true
}
}
This is working for now, our developers are working on a permanent solution based on a 2-stage redirect like you suggested, the only problem with this is the looping done if a browser disables cookies, but at least it protects our application layer.
Thanks again.
Sam. - hoolio
Cirrostratus
That's a good start. If you used two pages you could have one set the cookie and then other allow access if the client presents the cookie(s) or send a redirect/HTTP response for clients who don't have a cookie. And by "pages" it could just be two different HTML responses sent from the iRule.
Aaron
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
