Файлы cookie и их программирование
Название этого маленького файла, который сайт хранит на компьютере каждого посетителя, для размещения в нем пригодных для использования данных при дальнейшем возврате, происходит от Magic Cookie, которая под Unix обозначает пакет данных, прошедших между разными программами.
Это можно назвать просто cookie или cookie браузера, компьютера, отслеживания, Интернета, Интернета или HTTP cookie.
Его содержимое представляет собой список пар имя = значение. Он не предназначен для размещения исполняемого кода на клиентском компьютере, но может использоваться для слежки за пользователем путем неправомерного использования записанных данных, в том числе для выяснения, какие сайты он посещает.
Происхождение печенья датируется 1994 годом и браузером Netscape (Mosaic Netscape 0.9 от 13.10.1994). Стандартная спецификации для HTTP была определена IETF в 1997 году (см. ссылки).
Анатомия печенья
Максимальный размер печенья - 4 КБ. Их максимальное количество зависит от браузера, оно составляет 50 на домен для IE и Firefox. Всего 300 на одном компьютере.
Имена бесчувственны.
Срок службы может быть ограничен сессией, количеством дней или не ограничен. Можно настроить браузер на удаление куки в конце сессии или полностью отказаться от них.
Если указана дата, то в эту дату файл cookie стирается, в противном случае он стирается в конце сессии. Браузер может продлить срок действия при каждом посещении сайта.
Они хранятся в нескольких файлах (IE), едином текстовом файле (Firefox), зашифрованном файле (Opera, Safari).
Информация, которая часто помещается в печенье:
- Идентификационный код пользователя службы.
- Логин и пароль для сайта.
- Настройки отображения.
Например, для Google нет количества сайтов на странице результатов. - Корзина покупок на сайте онлайн-продаж.
- Посещаемые страницы и в каком порядке.
Файлы cookie DART от Double Click и Adsense используются рекламодателями для анализа использования рекламы. При посещении сайта, на котором размещаются объявления этих правил, а также других аффилированных с ними правил, управление проверяет наличие cookie и создает его, если он еще не существует.
Пользователь имеет контроль над cookie
Можно настроить браузер на запрет создания cookie. Но у этого есть недостатки, большинство сервисов, которые требуют регистрации, навязывают создание cookie, которое может использоваться для передачи данных между программами. Хуже того, когда их отключают, большинство сайтов отказываются от регистрации без каких-либо объяснений.
Предпочтительный вариант - принимать файлы cookie только для сеанса. Их также можно запретить, за исключением тех сайтов, которые мы привожу. Тогда нужно будет думать о создании исключения каждый раз, когда хочется зарегистрироваться на сервисах нового сайта.
За исключением старых версий, браузеры по умолчанию читают только файлы cookie о посещаемом сайте. Однако их можно настроить на прием печенья третьих сторон. Этим в основном пользуются сайты рекламных объявлений.
Одно из ограничений для вебмастера заключается в том, что если пользователь использует разные браузеры, то каждый, у которого есть своя система cookie, рассматривается как разный пользователь.
Когда Dart cookie от Double Click, учитывая большое количество сайтов, использующих эти правила, эти cookie будут, как правило, систематически появляться. Двойной щелчок предлагает отключить cookie для удаления отслеживания в других cookie.
Файлы cookie и безопасность
Даже если файлы cookie содержат только данные и запрещают их использование сторонним сайтам (что позволило бы пиратскому сайту получать данные аутентификации для других сайтов), они вызывают незащищенность.
Взлом сети
Хакеры могут получить печенье при передаче по такой сети, как Wifi. Использование протокола https может предотвратить этот риск. Этот протокол должен использоваться для создания cookie, а не только для других коммуникаций.
Злонамеренный код
Также есть возможность для кода, встроенного в веб-страницы, получить файлы cookie с сторонних сайтов, даже если это запрещает браузер.
Хакеры могут повторно использовать JavaScript или PHP-код сайта для восстановления данных о пользователях сайта.
Это можно предотвратить, запретив «межсайтовый скриптинг», возможность интеграции скриптов в URLs. Для этого добавляется контроль над параметрами в скриптах. Например:
$r = "^[\w]{1,40}$"; if (preg_match($r, $param) == 0) die("Hacking!");
Здесь проверяется наличие в параметре только альфа-цифровых символов. Статья от Microsoft подробно описывает, как предотвратить перекрестный сценарий.
Изменение данных
Использование идентификатора сеанса вместо данных, предупреждает атаки с помощью изменения cookie, отправленного сервером.
Данные хранятся на сервере и связаны с идентификатором сеанса, который хранится только на сайте пользователя.
Эта мера подходит для сайтов, опасающихся манипуляций данными, например для торговых сайтов, которые автоматически обрабатывают заказы и суммы, подлежащие выплате.
Ниже всего лучшая защита для пользователя интернета - использование новейшего браузера. В частности, ИС 6 необходимо заменить.
Программирование cookie
Файл cookie создается запросом заголовка HTTP. Файлы cookie создаются браузером, программой JavaScript или сценарием на сервере, в частности на PHP.
Cookie - это набор имен = значение, разделенное точкой с запятой. Например:
name=nomducookie; expires=date; domain=.iqlevsha.ru; path=/;
path - относительный путь на сайте страницы, для которой создается cookie.
expires указывает дату истечения срока действия, которая имеет формат: Lun, JJ-MMM-YAAA HH: MM: SS GMT.
Пример даты истечения срока действия:
Mar 01-Jan-2009 12:40:10 GMT
Создать cookie в PHP
setcookie("name1", "valeur1", time() + 1200);
Один или несколько серий, каждый из которых состоит из имени, необязательного значения, срока действия и других параметров (см. руководство PHP).
Если значение опущено, имя будет удалено из списка на компьютере пользователя.
Просмотр файлов cookie в PHP
Чтобы просмотреть все файлы cookie:
print_r($_COOKIE);
Для просмотра содержимого cookie с именем x:
echo $_COOKIE["x"];
Создать cookie в JavaScript
document.cookie = "nom" + "=" + escape("valeur") + ";";
Можно создать пару имен = значений, разделенных точкой с запятой, и назначить всю строку .
Просмотр файлов cookie в JavaScript
document.write(document.cookie);
Демонстрация чтения cookie в PHP и JavaScript
В PHP :
Массив ()
Исходный код PHP:
<p>
<?php print_r($_COOKIE); ?>
</p>
В JavaScript:
Исходный код JavaScript :
<p>
<script type="text/javascript">
if(document.cookie == null)
{
document.write("No cookie<br>");
}
var str = String(document.cookie);
document.write(str + "<br>");
</script>
</p>