What are cookies, anyway? Are they tasty?
A cookie is a small bit of information about you that the web server sends to your client. Your client then offers that information to the web server every time you visit a page on it thereafter.
Cookies are frequently used by web sites as part of their login process; when you enter your username and password, the server creates a cookie that contains a unique identifier, which your browser then stores and sends to the site whenever you visit, notifying it that you really are who you say you are.
This all sounds great. So what's the problem?
Certain less scrupulous sites may use cookies to track what kinds of advertisements you have seen or what sites you have visited to build up a list of advertising preferences. Because of this, many users may have browser options or third-party programs that restrict or eliminate the cookies that sites may store on their machines. This, unfortunately, interferes with that user's ability to log into LiveJournal, since a user's browser must accept a cookie to allow them to log in.
Further, some network settings on the part of the user or their internet service provider may have the same effect. Particularly, some internet service providers use proxies to serve requests; a proxy is a machine that sits between you and the site you are trying to contact, intercepts your request, and contacts the site on your behalf. Proxies are frequently used to supplement browser caches to improve speed of access for individual web sites. Unfortunately, some of them interfere with appropriate transmission of cookies, as well, causing users to be unable to log in or update their LiveJournal site preferences.
And, lastly, some users may have their clocks set in a vastly wrong way. Cookies contain expiration dates; if the client thinks that the cookie that the server is trying to set ought to have expired last week, it will throw it away without comment.
So what can be done?
Users may clear the cookies from their browser, to ensure that an old version of a cookie is not accidentally being used instead of a new one. Users may check their browser settings to ensure that LiveJournal is named as a "trusted" site, indicating that it may set cookies on the machine. They also may check other security programs to ensure that none of them are deleting cookies from LiveJournal. They may need to check their local network for devices that might interfere with cookies; some routers have been known to do this. And, lastly, they may contact their internet service provider to ensure that cookies are being properly set.
There is a FAQ which addresses precisely these issues, and this FAQ should be referenced whenever a cookie problem is suspected.
How can I tell if something is a cookie problem?
Here are some common signs of cookie problems:
- The user logs in successfully, but then is logged out whenever they visit a new page on LiveJournal.
- The user changes their page layout or language, but the setting never seems to stick between pages.
- The user is unable to use some feature they should be able to use while logged in, or unable to see protected entries they believe they should have access to.
- The user receives a message that says "invalid cookies". This is specifically a sign that they've recently switched to a paid account, and a separate FAQ is devoted to this issue.
It is also important to note that any of the above problems may also occur due to caching; for that reason, the FAQs that are used in these cases contain links to the cache-clearing FAQ. It should not be necessary to link to it yourself in most cases, although if the user is particularly confused and has already seen the cookie-related FAQs, you may need to make such a reference.
What does "Bind cookie to IP address" mean, then?
In theory, you will be sitting at a particular computer which has a unique IP address on the Internet. When your browser sends a request to LiveJournal, your IP address is one of the pieces of data that the server picks up. If someone else snoops on your session and tries to use your login cookie from their own computer then it will be coming from a different IP address. So you can tell LiveJournal that your login cookie isn't valid if it comes from any other address than yours, and this will protect you from people trying to steal your cookies.
Note that this doesn't stop you from logging in from another computer with your username and password. LiveJournal will generate a different cookie for that login, and you can thus bind it to a different IP address.
So what can go wrong?
If you are on dialup, or a connection which often changes its IP address, then binding your cookie to your IP address will cause you to get logged out every time the address changes (which, for a dialup connection, usually means every time you connect to the Internet).
More importantly, some ISPs use clusters of web proxies. When you send a request to LiveJournal, they intercept it and send the request on your behalf. Sometimes each request will come from a different machine within the cluster. If you have bound your cookie to "your" IP address, you will actually have bound it to the address of one particular proxy machine in the cluster. If a different proxy picks up your next request then you'll appear to be logged out again. This can cause you to appear to be randomly logged in and out, depending on which proxy your request hits on the way to LiveJournal.
The solution to this is of course to try disabling the "Bind cookie to IP address". This is one of the steps listed in the FAQ, so you don't need to state it explicitly to the user unless they have regreened the request.