![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
Всем проивет.
Пишу интернет-магазин. Есть база данных с таблицей пользователей и таблицей корзины. У корзины соответственно есть поле, указывающее какому пользователю она принадлежит. Но я хочу дать возможность пользоваться корзиной в том числе и незарегистрированным пользователям- добавлять товары, просматривать корзину, редактировать ее содержимое. Поэтому я сделал пока так: При заходе пользователя, если у него нет cookies с сессией, то сессия генерируется, записывается ему в куки и создается запись с пользователем в БД. Но если у пользователя не поддерживаются куки, то база данных быстро забьется т.к. при каждом просмотре будет генерироваться новая сессия и пользователь. Какие есть варианты борьбы с этим? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Нужно проверить параметры
Сессия может работать и без кук, тогда в адресную строку будет добавляться параметр PHPSESID=ZZZZZZZZZz Вообще, ходить по магазину без кук может позволить себе только бот, imho -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| rcdimon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
Вот они меня и волнуют ) например, узнав, что у нас такое дело, злоумышленник может написать скриптик, который убьет наш сайт за 1 день. Так быть не должно.
Это да. Это когда сессия делается встроенными средствами PHP. Я просто для сессий свой небольшой велосипед написал, чтобы хранить их в БД как мне нужно и делать с ними то, что хочу. Но вообще, можно, и к своему велосипеду прикрутить сессию в ссылки и если при переходе по ссылке с сессией у человека нет куки- значит они у него не поддерживаются и значит надо.... э а кстати что делать то в таком случае? ) Удалять наверное его сессию из БД и писать, что магазин не работает без куки... Но опять же скриптиком можно будет базу нашу забить. Надо придумать какой-то способ, чтобы база не страдала... Может вообще для таких пользователей не использовать обычную корзину в БД а хранить ее прямо у них к куки... Корявость в том, что для одного и того же по сути придется 2 реализации писать. |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Сессию нужно заводить только когда юзер что-то купил. Таким образом, все поисковые боты, которые не генерят POST запросы, не генерят и лишнюю нагрузку.
Если какой скрипт злонамеренно захочет гадить в базу с сессиями, то никто не помешает этому скрипту сначала скинуть куки и наплевать на хитрости с адресной строкой. так что - смирится и расчитывать на лучшее Насколько оправдано хранить сессии в базе? Это, вообще говоря, не быстрее файлового хранения. Это сообщение отредактировал(а) ksnk - 5.5.2012, 20:48 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |