Именование файлов cookie - лучшие практики [закрыто]


107

Как должны выглядеть имена файлов cookie?

Должны ли они быть:

  • lower_case
  • CamelCase
  • Подчеркивание, камел, футляр
  • ВЕРХНИЙ РЕГИСТР

Или они должны быть чем-то другим?


1
Хороший вопрос! Проголосовал бы, если бы у меня остались голоса.
Pekka

1
@Pekka: Я за тебя проголосовал. Я бы тоже проголосовал за него, но проголосовать можно только один раз :(
Чарли Браун

2
@Bran, я проголосовал за вас, так как в любом случае я получаю новые голоса через несколько минут. О, но я тоже собирался проголосовать за это ... черт возьми.
Тор Валамо

1
Спасибо, Джейкоб! Это делает нас шагом вперед. Вы случайно не планировали проголосовать за этот вопрос? Потому что, если вы это сделали, нам понадобится еще один волонтер!
Pekka

1
На всякий случай не стал бы. Итак, вот мой +1 для вас, ребята. :)
Hilton Perantunes

Ответы:


66

appname_meaningfulname


10
@Emanuil: чтобы отличать его от всех других файлов cookie, создаваемых другими приложениями в том же домене.
Игнасио Васкес-Абрамс,

2
@Emanuil Rusev, надстройки браузера иногда устанавливают куки. Я просто усвоил это на собственном горьком опыте, когда мой веб-сайт получил файл cookie и получил данные, установленные надстройкой пользователя, вместо данных, установленных моим сайтом.
lala

8

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


4

Это должно быть что-то, что позволяет избежать конфликтов имен с произвольными параметрами _GET и _POST, которые вы можете использовать, поскольку _REQUEST обертывает все три глобальных массива (!) С приоритетом в зависимости от того, как ваш параметр variables_order установлен в php.ini. Другими словами, если у вас есть _COOKIE с именем «x» и параметр строки запроса с именем «x», и вы запрашиваете $ _REQUEST [«x»], вы получаете значение cookie, когда вам может понадобиться / ожидать параметр GET. Это особенно проблематично, если ваши файлы cookie привязаны к корню вашего веб-сайта "/", а не к папке, в которой они используются.

Итак, я говорю о двух передовых методах:

  1. убедитесь, что вы ограничили объем ваших файлов cookie тем путем, по которому они читаются и записываются (это делает третий аргумент метода setcookie ())
  2. дайте вашим куки-файлам какое-то соглашение об именах, специфичных для куки-файлов. Я предлагаю обратный веб-сайт, например, пространства имен java, затем ".". {Appname}. ".". {Понятное имя файла cookie camel cased} Итак, если ваш сайт - www.testsite.com, ваше приложение - foo, а ваша переменная это "bar bar bar bar bar bar barann", это будет "com.testsite.foo.barBarBarBarBarBarann"

3
Вы видели некоторые из этих практик на живом веб-сайте?
Эмануил Русев

0

Я использую любой стиль, который требуют стандарты кодирования для проекта.

Обычно я предпочитаю camelCase для схем именования, но я выберу тот, кто оплачивает счета.


0

Может тебе не понравится мой ответ:

Не используйте свои собственные файлы cookie, а храните данные в сеансах сервера. Таким образом, вам нужен только один файл cookie (для ссылки на идентификатор сеанса), и как вы его называете, это не играет роли.


9
Это становится беспорядочным с балансировщиками нагрузки, поскольку тогда сеанс должен храниться в базе данных, которая не находится на том же хосте (или, возможно, даже в том же центре обработки данных). Иногда файлы cookie подходят.
dotancohen

1
@dotancohen, можете ли вы дать несколько ссылок по описанной вами проблеме? Спасибо!
Sharky

1
«Не используйте куки» звучит немного пуритански; но мне нравится эта попытка сохранить чистоту для пользователя.
Parapluie

securecookies можно безопасно использовать без какого-либо хранилища сеансов на стороне сервера. Они не обязательно должны быть огромными (на самом деле существует ограничение в 4 КБ, что довольно скромно) и позволяет избежать балансировщиков нагрузки и / или централизованного поиска в БД.
colm.anseo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.