sessions - хранятся на сервере.
cookies - хранятся на клиенте.
Подменить сессию врятли сможет. Но логика построена не правильно, вы должны хранить в сессии только ид товара и количество. А при покупке - затрагивать данные из БД.
Вдруг человек добавит товар в корзину, а вы цену поменяете, тогда он по старой купит?)
В бд хранится хэш-пароль(мд5 - 202cb962ac59075b964b07152d234b70). Когда человек хочет авторизоваться на сайте, он вводит свой нормальный пароль и логин. Тот пароль который он ввел(нормальный) - хэшируют в md5 и сравнивают с тем что в базе. Пример ниже.
В базе есть:
LOGIN — admin
PASS — 4297f44b13955235245b2497399d7a93 (123123)
Человек ввёл на сайте:
LOGIN — admin
PASS — test
Переводим пароль который ввели в MD5(чтобы сравнивать) и получаем:
$login = $_POST['login'];
$pass = md5($_POST['pass']); // $_POST['pass']=test ==> $pass = 098f6bcd4621d373cade4e832627b4f6
Отправляем запрос в базу:
SELECT * FROM `users` WHERE `PASS` = '$pass' AND `LOGIN` = '$login';
Другими словами:
Выбрать из таблицы `users` строки где `PASS` = введенному паролю и `LOGIN` = введенному логину.
Тем самым мы и сравниваем пароль который ввели и тот который в базе.
Если количество строк которые вернет MySQL будет больше 0 - данные верны. Если ничего не вернет(0) - такого аккаунта нет.
Результат: ничего не вернет, такого аккаунта нет ибо такой комбинации логина и пароля в базе нет.
Когда то была такая же проблема, не работало около 7 клавиш, но работала NumPad клавиатура.
С помощью AHK написал скрипт и при нажатии на какую либо кнопку из NumPad'a - вызывались нужные мне кнопки.
На последней строке кода - записать в файл какое то значение, написать второй скрипт который проверяет значение и если его там нет - запустить скрипт еще раз.
Т.е первый крон в 12:00, второй в 12:05, тот что в 12:05 - скрипт который проверяет выполнение первого скрипта.
Думаю даже если с первого не включился, то со второго раза запустится ваш первый скрипт.
Такую защиту можно удалить за две секунды. Делайте лицензию + часть важного функционала через ваш сайт, в итоге если снесут все что связанно с лицензией - сайт перестанет работать ибо не будет какой то функции.