Введение
Когда мы обсуждаем правильное управление сеансом и то, как приложения в настоящее время управляют сеансом пользователя, мы называем это «управлением сеансом». Существует ряд важных компонентов, которые обычно используются приложениями, например маркеры, которые хранятся в заголовке или в файле cookie. Необходимо убедиться, что при использовании или добавлении каких-либо значений в файл cookie применяется соответствующая защита. Если этого не сделать, файлы cookie могут быть скомпрометированы, поэтому они требуют соответствующей защиты. В сегодняшней публикации мы углубимся в тему безопасности файлов cookie и факторов, которые следует учитывать при их защите.
Защита файла cookie
Что такое файлы cookie
Каждое онлайн-приложение предоставляет каждому пользователю уникальный идентификатор сеанса, который хранится на стороне клиента, а значения, присвоенные этому идентификатору, хранятся в виде переменной в файле cookie, чтобы приложение могло идентифицировать пользователя и лучше служить им. Приложение может определить, какой пользователь в настоящее время вошел в систему, и предоставить этому пользователю контент, адаптированный к его конкретным областям интересов. Каждый раз, когда пользователь обращается к приложению на основе переменной пути, вместе с запросом отправляется файл cookie. Это позволяет приложению проверить пользователя и убедиться, что оно предоставляет услуги в соответствии с требованиями. Помимо обеспечения правильной аутентификации пользователей, это также можно использовать для обеспечения любой необходимой авторизации. Эти токены сеанса, найденные в файлах cookie, можно рассматривать как временное имя пользователя и пароль для учетной записи пользователя. Они становятся недействительными, как только пользователь выходит из своей учетной записи.
Давайте разберемся с различными флагами, которые можно использовать в файле cookie, чтобы сделать его полностью безопасным.
Только HTTP
Флаг HttpOnly не установлен в значение true
Необходимо установить флаг HttpOnly в файле cookie, чтобы клиентские скрипты не могли получить доступ к содержимому файла cookie. Если этот флаг не установлен в файле cookie, клиентские сценарии, включая вредоносные полезные данные JS, смогут легко получить доступ к файлу cookie с помощью простого документа атрибутов. печенье.
Злоумышленники всегда хотят получить доступ к файлу cookie в атаках с использованием межсайтовых сценариев, чтобы можно было получить доступ к файлу cookie и переместить его в домен, контролируемый злоумышленником. После компрометации файла cookie, если не будут приняты дополнительные меры защиты, возможно, что файл cookie может быть использован для получения контроля над учетной записью пользователя. Поэтому, если токен сеанса и другая конфиденциальная информация сохранены в файле cookie, злоумышленник получит к ним доступ и сможет использовать их в неэтичных целях. Доступ к учетной записи пользователя в злонамеренных целях, изменение профиля пользователя или компрометация всего набора информации пользователя — все это примеры злонамеренных намерений.
Владельцам приложений необходимо установить флаг «HttpOnly» в значение «True».
Есть несколько атрибутов, которые необходимо установить в файле cookie, «HttpOnly» — один из них.
setcookie($name, $value, $expire, $path, $domain, $secure,$httponly);
Во время установки файла cookie значение флага httponly должно быть установлено как «$httponly=True».
Пример. В приведенном ниже фрагменте в файле cookie задан параметр HTTPonly.
setcookie("userCookie", $userl, 0, "/", "www.example.com', TRUE);
Установка срока действия
Для файлов cookie, в которых хранится конфиденциальная информация, такая как токен сеанса и другая информация, должен быть установлен срок действия. Поскольку эти файлы cookie содержат маркер сеанса, который можно использовать для доступа к учетной записи пользователя, их оставление активным в течение длительного периода времени представляет угрозу безопасности, поскольку хакер, успешно взломавший один из этих файлов cookie, может получить доступ к учетной записи пользователя на неопределенный срок. период времени. Следовательно, абсолютно необходимо, чтобы в файле cookie был установлен срок действия. Большинство организаций, например те, которые имеют дело с конфиденциальными данными (например, веб-сайты банков), как правило, имеют более короткий срок действия, и они удаляют файл cookie примерно через 15–20 минут после его создания.
Чтобы установить время истечения срока действия, вы можете использовать этот метод
setcookie(“userCookie”, $user, time()+60*60*24*365*1);
После этого копия этого файла cookie будет храниться на компьютере пользователя в течение одного года. Когда отведенное время будет превышено, он автоматически завершится. Поскольку это повышает безопасность как учетной записи пользователя, так и хранимой в ней информации, всегда рекомендуется устанавливать время истечения срока действия на 24 или 48 часов.
Защитный атрибут
Это достигается с помощью безопасного атрибута файла cookie. В случае, если эта характеристика была изменена, cookie не сможет путешествовать по зашифрованным каналам (по http). Когда пользователи подключаются к общедоступной сети Wi-Fi, злоумышленник, желающий провести атаку «Человек посередине», обычно заставляет их подключаться по незашифрованным каналам. Это связано с тем, что при подключении по незашифрованным каналам злоумышленник сможет прочитать всю информацию, которая передается с компьютера пользователя. Если файл cookie не включает этот атрибут, он также будет передаваться по незашифрованным каналам, что позволит злоумышленнику скомпрометировать его и получить доступ к учетной записи пользователя.
Флаг «Безопасность» для приложения должен быть установлен его владельцами на «Истина». Поэтому, даже если злоумышленнику удастся убедить пользователя осуществить связь по незашифрованному каналу, файл cookie не будет передан вместе с запросом, и злоумышленник не сможет его получить.
setcookie($name, $value, $expire, $path, $domain, $secure,$httponly);
При установке значения файла cookie администратор может установить «$Secure=True».
Заключение
Файлы cookie играют важную роль в безопасности приложений, поэтому убедитесь, что они используются тщательно. В этом блоге я обсудил некоторые основные приемы, связанные с использованием файлов cookie в процессе проверки исходного кода. Либо команда безопасности может найти проблему вручную, либо использовать для этого автоматизированные инструменты. На рынке доступно так много инструментов для безопасного просмотра кода.