Вся корзина должна оставаться на сервере, клиент отображает корзину и запрашивает подтверждение. Цены также могут быть рассчитаны на клиенте, но они должны быть рассчитаны снова на сервере позже.
Вы не должны терять следы данных корзины (т.е. отправлять их пользователю и ждать, пока они вернутся)как ты больше не можешь доверять этому, после. Вы должны сохранить данные корзины / заказа на сервере и отправить клиенту идентификатор сохраненных данных корзины вместе с данными для отображения (цены и т. Д.). Затем пользователь отправляет обратно подтверждение и идентификатор, а не все данные. С помощью идентификатора вы восстанавливаете информацию о корзине / заказе на сервере, с ценами и прочим, поэтому цены никогда не поступают от пользователя.
Все, что пользователь отправляет вам, может быть им изменено, если он достаточно техничен.
Использование encription не помогает, envice предотвращает изменения данных, происходящих во время перемещения между источником (клиентом) и пунктом назначения (сервером). Это не гарантирует, что клиент сам доверяет или данные верны. Подделка происходит в клиенте, до того, как произойдет запись (пользователь может манипулировать данными url или данными POST по своему усмотрению, изменяя цены, прежде чем они будут зашифрованы).
Кроме того, запись обычно гарантирует владельцу сервераправильный (клиент имеет сертификат) для клиента, он не гарантирует, что пользовательское или клиентское программное обеспечение является надежным, поэтому пользователи, использующие модифицированные браузеры, являются абсолютно законными и не могут быть различимы.