Что такое файлы cookie?


Так, что же такое cookies и с чем их едят?

Само слово cookie на русский язык переводится, как печенье, а с чем его едят?

Что такое файлы cookie

Что такое файлы cookie

Да кто с чем, кто-то с молоком, а кто-то с чаем :)
Но по отношению к файлам cookie, такой перевод является некорректным, поэтому чаще всего их (кукисы) называют плюшками. 

Так какой же цели служат эти [плюшки] файлы cooкie, если их даже есть нельзя. Но это как сказать, они вполне съедобны для (PHP, JavaScript и прочих) скриптов. А весь смысл их короткой жизни заключается в том, что они позволяют сайтам хранить пользовательскую информацию, ну и соответственно персонализировать Web проект. Очень многие скрипты сайтов, отправляют браузерам маленькие файлы, которые те в свою очередь, сохраняют их в специально отведенных для этого местах, на жестком диске.

У файлов cookie есть несколько параметров, но обязательным их них, является лишь один, это имя переменной, которое необходимо записать в кукис.

Я уже писал о том, какими методами передаются данные в PHP, а именно GET и POST, и в качестве примера приводил простой скрипт авторизации на PHP, поэтому сегодня мы его немного дополним, а именно сделаем возможность, запоминать вводимые логин и пароль.

Безопасность файлов Cookie

Насколько безопасно использовать куки?

Да уж не безопасно, поверьте мне, хранение в этих файлах важной [приватной] информации. И лично я бы им не стал доверять хранение информации, которая может повлиять на безопасность пользователя в интернет системе. Для похищения куков существует несколько способов:

1. Ошибки и не обновленные баги в браузерах;

2. Ошибки в PHP (и не только) скриптах, позволяющие встроить в страницу JavaScript (XSS);

3. Ну и конечно же вирусы и прочие трояны, на пользовательских компах, которые их просто воруют.

Все таки, информация из файлов cookie, должна служить для того, что-бы упрощать авторизацию на сайте, но ни как не заменять ее. Наиболее оптимальным с позиции безопасности, является сохранение в куках только логина. Но это не всегда удобно для конечного пользователя, ведь многим просто лень каждый раз вбивать свой пароль, а [красота] простота,  как всем известно, требует жертв.

Что же касается меня, то куки я обычно отключаю.

Как PHP сохраняет и читает данные из файлов Cookie

В данном скрипте я покажу, как сохранить, а потом и считать кукисы из браузера пользователя. Естественно, данный скрипт до неприличия прост, и не отвечает всем правилам безопасности, и может рассматриваться только для примера работы PHP с файлами cookies. :)

<?php
//инициализируем переменную безопасности $real
$real=0;

//если юзер поставил галочку, запоминаем кукисы
if (isset($_POST[‘remember’]))
{
setcookie(«login»,«root», time()+86400);
}
//проверяем корректность ввода логина и пароля
if(($user==«root») and ($pass==«kroot»))
{
//если все ровно, изменяем значение $real
$real=1;
}
//если кукисы имеют место, тоже меняем $real
if (isset($_COOKIE[‘login’]))
{
$real=1;
$user=$login;
}
//ну и последнее (если) проверяет значение $real
if ($real)
{
print(«<HR>Закрытая страница. Привет $user!<HR>»);
}
?>
<form action=«authorization.php» method=«POST»>
<B>Авторизация на сайте</B>
<BR>Логин: <input name=«user»>
<BR>Пароль: <input type=«password» name=«pass»>
<BR>Запомнить: <input type=«checkbox» name=«remember»>
<P><input type=«submit» value=«Жми!»>
</form>

В этом скрипте, для сохранения cookie, используется функция setcookie, которой в качестве параметров передаются три значения: (‘login’,’root’, time()+86400);
Первый параметр «login» является именем передаваемого кукиса,
Второй параметр содержит значение кукисов,
И в третьем я ставлю куки на 24 часа, используя функцию time()+86400;

А для чтения куков, я использовал псевдоним массива HTTP_COOKIE_VARS а именно $_COOKIE, которому в качестве параметра передал имя кукиса.

Как посмотреть cookie в браузере?

Для того, что-бы посмотреть содержимое файлов кукисов в браузерах, вполне достаточно (в зависимости от названия и версии браузера) зайти в настройки,  и там посмотреть [свои] куки. Но для полного просмотра всех параметров кукисов, лучше всего использовать браузер Opera, и там выбрать -> настройки -> расширенные -> Cookies. Но так, как мы кодеры не ищем легких путей, или наоборот ищем, то есть способ наиболее интересный для просмотра. :)

После того, как вы успешно пройдете авторизацию, и поставите галочку в чекбоксе: Запомнить (логин и пароль), можно посмотреть сохраненные cookie для конкретного сайта, и для этого всего то необходимо, после успешной авторизации, ну и соответственно сохранения кукисов, вставить в адресную строку браузера вот этот JavaScript код:

javascript:document.write(document.cookie);

После этого можно увидить все содержимое файла cookie, которое вам оставил тот или иной сайт.

P.S. Скачать скрипт авторизации на PHP, с использованием файлов Cookie, и потренироваться на localhost, можно здесь: Скачать.
Ну а в одной из своих следующих статей, я напишу, как можно похитить куки, и насколько вообще возможен с их помощью взлом, например аккаунта социальной сети вконтакте.