• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Удаление и изменение Cookies в подкаталогах

  • Автор темы shisik
  • Дата начала
S

shisik

Столкнулся с проблемой. Допустим, есть два скрипта:

/index.php
/folder/index.php

Первый устанавливает куки:

PHP:
$name = "username";
setcookie("name", $name, time() + 3600);

Дальше если прочитать значение $_COOKIE['name'] в обоих скриптах - оно как и ожидается будет равно "username". Затем пользователь выходит из системы и первый скрипт удаляет куки:

PHP:
setcookie("name", "0", time() - 100);

Теперь если прочитать значение $_COOKIE['name'] в первом скрипте, то будет пустая строка, а вот в /folder/index.php так и останется "username". Почему? Аналогично при изменении значения, например:

PHP:
$name = "username2";
setcookie("name", $name, time() + 3600);

Как сделать так, чтоб куки менялись во всех папках независимо от того, из какого именно скрипта они устанавливаются?

Забыл добавить: PHP Version 5.2.6, браузер Firefox 3.0.6
 
N

nws

PHP:
//create
$name = "username";
setcookie("name", $name, time() + 3600, $path = '/');
//delete
setcookie("name", "0", time() - 100, $path = '/');
 
S

shisik

Так создаётся 2 одинаковых записи, а потом удаляется только одна (смотрел вывод phpinfo())
 
S

shisik

Я не знаю, я их и не создаю. Но если добавить '/' в функцию setcookie(), то после её выполнения появляется 2 кука вместо одного. А при вызове setcookie("name", "0", time() - 100, $path = '/'); удаляется только один из них. Второй можно удалить вызовом setcookie("name", "0", time() - 100); Сразу скажу, что до вызова setcookie("name", $name, time() +3600, $path = '/'); все куки были удалены. Информацию о куках беру в phpinfo (раздел HTTP Headers Information).
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!