Как лучше защитить переменные или где передавать данные?
Есть несколько переменных, допустим цена, которую надо передавать между страницами, так как php я не использую, и одностраничную технологию тоже, надо где то хранить данные что бы передать их на другую .html страницу а потом с помощью ajax записываю в базу данных. Самый оптимальный вариант для меня это localstorage., но если найдутся умники которые зайдут в js файл , увидят шо данные запишутся в localstorage и просто зайдут в консоль и сделают localstorage.setitem("price",50);Так же если быстро при загрузке странице данные и принимать их в глобальную переменную, а потом очищать localstorage тоже не подходит, потому что та же глобальная переменная изменяется. Вопрос: Как быть в таком положение?
но если найдутся умники которые зайдут в js файл , увидят шо данные запишутся в localstorage и просто зайдут в консоль и сделают localstorage.setitem("price",50);
И? Если у вас расчет чего-то важного полностью на фронте то у меня для вас плохие новости.
так как php я не использую
надо где то хранить данные что бы передать их на другую .html страницу а потом в базу данных
Любое действие с фронта, обязано проверяться на бекенде.
Request - делаете строгий объект, который не даст получить лишние данные с фронта
Validate - проверка данных, сравнение в БД и т.д. Что бы левый артикул, цена и т.д. не попали.
Response - даете четкий ответ, желательно в заголовке
А можете скинуть ссылочку где это можно всё почитать пожалуйста. И насколько я понял надо делать что то типо такого: Как только формируются две переменные(которые зависят на цену) сразу отправлять их на сервер, на сервере считать цену и потом при надобности возвращать её обратно?Если не так поправьте меня пожалуйста!
Между страниц, вы можете передавать данные как вам удобно.
Но как только заказ идет на бекенд (что бы в БД записать или прочитать), вы должны сделать все действия которые я описал.
Я не знаю как устроена у вас логика.
Но приведу простой пример.
У нас есть 2 товара:
1) Штаны - 500р.
2) Трусы - 200р.
Допустим мы отправили из в корзину.
Суммарно товар стоит 700р.
Если кто то поменял на фронте сумму на 100р., то нам все равно.
Ведь при оформлении заказа, все данные должны провериться на бекенде. Или при любом другом расчете.
Предположим мы нажали - оформить заказ.
На бек отправляется запрос:
арт. ххххх1; price: 300; и еще какие то параметры
арт. ххххх2; price: 10
currency: rub
count: 2
...
По этим артикулам, вы проверяете цену, наличие и все что требуется.
Вы видите на беке, что товар стоит стоит совершенно по другому, чем к нам пришла сумма.
Соответственно вы считаете реальные данные а не фиктивные, предупреждаете об этом пользователя.
Doc: ну к сожалению мне не с чем проверить данные(артикулы), потому что их нет в физически в базе данных, все данные можно взять только с фронта(это не товары). Поэтому данные полюбому надо как то передать сначала, и вот вопрос будет ли безопасен метод, допустим по ивенту onselectend->ajax->data(тогда по идеи пользователь не успеет подменить данные), и запишет это всё в сессию php. А потом уже как Вы сказали, сверять с этой сессией.
Nikola24: Я о сессии вообще не говорил =) Пользуюсь jwt и реализация SPA приложений.
Данные можно подменить ДО выбора чего либо.
Так же их можно спокойно перехватить до отправки ajax запроса на сервер.
Фронт - это все что в чужих руках и вы это не можете полностью контролировать.