Шлях до файлів cookie та його доступність до сторінок підпапок


75

Скажімо, у мене є веб-сайт із доменом: www.example.com

Якщо я встановив файл cookie із шляхом ' / ', файл cookie буде доступний на всіх сторінках домену, наприклад:

  • www.example.com/page1.html
  • www.example.com/subfolder1/page1.html
  • www.example.com/subfolder1/moresubfolder1/page1.html тощо.

Що якщо ми встановимо для файлу cookie шлях ' / subfolder1 ', чи буде файл cookie доступним для будь-якої сторінки або підпапки під папкою? Наприклад:

  • www.example.com/subfolder1/moresubfolder/page1.html

Отже, якщо ні, то, мабуть, у мене немає іншого вибору, крім як використовувати шлях '/' для цих файлів cookie, так?

Відповіді:


76

Якщо ми встановимо для файлу cookie шлях '/ subfolder1' , чи буде файл cookie доступним для будь-якої сторінки або підпапки під папкою?

Так. Печиво буде доступно для всіх сторінок і підкаталогів усередині на /subfolder1шляху.


35
Дивіться stackoverflow.com/questions/8014024/set-cookie-wildcard-path для відповідної специфікації. Для тих, хто не знав, файли cookie доступні лише до зазначеного шляху та будь-яких підпутей, а не суперпутів. Отже, файли cookie для шляху "/ folder / subfolder1 /" недоступні для "/ folder /". Я трохи вдарився головою по цьому.
Anson Kao

@SampleJACK, це дуже добре пояснює МОЮ проблему!
RonLugge

@Alex, то як ми можемо отримати файл cookie, який призначений, /subfolder1але ні /subfolder1/inner-folder ?
Pacerier 05.03.13

@Pacerier відповідь, яку ми коментуємо, є правильною, ти запитував щось інше?
Anson Kao

@SampleJACK як ми отримуємо файл cookie, який призначений для / підпапки1, але не / підпапки1 / внутрішньої папки?
Pacerier

13

якщо ми встановимо файл cookie на шлях /subfolder1, доступні наступні сторінки в прикладі:

www.example.com/subfolder1/page1.html
www.example.com/subfolder1/moresubfolder1/page1.html
тощо.

Однак сторінка www.example.com/page1.htmlне буде доступною, оскільки вона не належить до дозволеного шляху.


12

Щоб усунути деяку двозначність повторним використанням частини цієї відповіді:

Шлях запиту відповідає заданому шляху cookie, якщо виконується принаймні одна з таких умов:

  • Шлях до файлу cookie та шлях до запиту ідентичні.
  • Шлях до файлу cookie є префіксом шляху запиту, а останній символ шляху до файлу cookie становить% x2F ("/").
  • Шлях до файлу cookie - це префікс шляху до запиту, а перший символ шляху до запиту, який не включений до
    шляху до файлу cookie, є символом% x2F ("/").

Існує невелика (але потенційно важлива) різниця між встановленням файлу cookie на /subfolder1шляху та /subfolder1/шляхом.

Якщо ви покладаєтесь на перше, ваш шлях запиту повинен починатися з "% x2F (" / ") символу" (коса риса), щоб гарантувати бажану поведінку. Для прикладу погляньте на відповідь, пов’язану між собою.

Встановлення шляху до файлу cookie просто /уникає будь-яких випадків краю, але, як ви кажете, файл cookie буде доступний для всього домену.


1
найбільш інформативна відповідь
CybeX,

в чому різниця між /subfolder1і /subfolder1/? Зв’язана відповідь, єдина відмінність: шлях запиту /subfolder1KKKтакож відповідає шляху cookie /subfolder1, правда? І різний браузер може мати різну поведінку, наприклад, IE збігається із запитом /subfolder1KKKдо шляху до файлу cookie /subfolder1, але firefox цього не робить, так?
відвертий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.