Если вы создадите ссылку в Javascript, как описано выше, вы не сможете предотвратить манипуляции, потому что для Javascript доступно все, что нужно для создания ссылки, т.е.Пользователь.В этом случае ваш пользователь может создать ссылку с произвольными параметрами и просто создать для нее хеш, такой же, как ваш Javascript.
Если вы создаете ссылку на стороне сервера, это другая история.Затем вы можете канонизировать представление параметров (например, расположить их в алфавитном порядке, что, вероятно, будет самым простым) и добавить MAC (код аутентификации сообщения) на основе секретности на стороне сервера для обеспечения подлинности.Один хороший алгоритм для этой цели - HMAC.Таким образом, когда параметры снова отправляются на сервер, вы можете проверить (опять же на основании секрета), что не было взлома.
Если вы также хотите скрыть параметры, вы можете использовать аутентификацию шифрование .
Также имейте в виду, что выполнение этого будет открытым для атак воспроизведения, т.е.кто-то, имеющий ссылку в одно время, может использовать ее в любое время позже, если не установлена какая-либо защита (одноразовый номер или временная метка).
И снова, вы не можете сделать это только на стороне клиента, ссылки необходимыгенерируется на сервере на основе какого-либо механизма аутентификации сообщений и секрета на стороне сервера.