2010-09-26 2 views
1

Как вы обрабатываете регистрацию пользователя или обновление тележки, когда вы не можете использовать сеансы? добавление userId или cartId в скрытые поля ввода чувствует себя как недостаток безопасностиРекомендации по настройке «отключить все куки» и вошли в систему пользователей/тележек

+0

Мне интересно, почему вы не можете использовать сеансы ... или вы имеете в виду сеансы без куки? – Archimedix

+0

Да, я думаю, что сеансы не следует отключать, когда вы выбираете «отключить все файлы cookie», но .. это происходит. – Nat

ответ

1

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

Это очень больно для выполнения сеансов параметров (с уродливыми ссылками /page.php?session=459gj0tv789yn), он прерывает кеширование, и пользователи не могут копировать и вставлять ссылки, если они случайно обмениваются сеансами. По этим причинам большинство сайтов больше не беспокоятся об этом и просто требуют куки.

Еще одна вещь, которую вы можете сделать - это использовать базовую аутентификацию HTTP, чтобы пользователь мог войти в учетную запись и хранить всю информацию о сеансе в учетной записи. Это немного менее удобно для корзины покупок, так как вы должны требовать от пользователя входа в систему, прежде чем положить что-нибудь в корзину, но в общем случае это хорошая альтернатива куки.

+0

Да, я полагаю, что я никогда не просматривал куки-файлы, отключенные, чтобы понять, сколько сайтов явно требуют куки-файлы и обратно в систему без cookie-файлов. Спасибо за базовую идею HTTP. это кажется достаточно хорошим решением для тех, кто слишком параноик для файлов cookie. – Nat

+0

Люди, которые отключили файлы cookie или рефереры или меняют строку пользовательского агента, обычно являются людьми, которые знают, что они делают, и знают, что это сломает многие страницы. Таким образом, я бы не стал им что-то внедрять. – NikiC

+0

HTTP-аутентификация является хорошей идеей, если вы считаете, что отправка пароля открытого текста * с каждым запросом * является хорошей идеей. Помните, что Basic Auth - это просто имя пользователя: пароль, закодированный в Base64, отправленный в HTTP-заголовке ... – Gareth

1

Ну, либо вам нужно сохранить идентификатор сеанса в файле cookie, либо в параметре строки запроса.

Вы правы, что использование параметра является недостатком безопасности. Все, кто должен сделать это, - это поделиться своим URL-адресом, и они отдали свой идентификатор своего сайта.

Некоторые фреймворки, такие как Rails, не позволяют использовать сеансы, если файлы cookie недоступны, и лично я считаю, что это приемлемая позиция, если вы серьезно относитесь к безопасности.

+0

Как быстро вы можете решить Rubies Cube? – NikiC