Некоторых вариантов (от наименее к наиболее preferrable) и мысль:
Вариант 1) Вы можете использовать какое-то менее угадываем хэш вместо OrderID. Это все еще не безопасно, это просто делает id труднее догадываться.
Вариант 2) Вы можете использовать идентификатор сеанса с файлом cookie, хранящимся на компьютере пользователя. Это все еще проблематично, потому что теперь вы ограничиваете просмотр этого заказа единственным компьютером. Но, по крайней мере, это немного более безопасно.
Вариант 3) Вы также можете, как часть процесса проверки, «подделать» учетную запись для пользователя. В рамках процесса убедитесь, что вы собрали свой адрес электронной почты. Когда заказ будет завершен, отправьте им письмо со случайным паролем (который хранится с заказом) и ссылку, чтобы просмотреть их заказ. Это еще не так идеально, потому что электронная почта не является безопасным транспортным механизмом для пароля.
Вариант 4) Сделайте пользователей правильными учетными записями, с которыми связаны заказы.
Даже если заказ защищен с помощью своего рода механизма паролей, вы все равно должны скрывать любой адрес заказа через какой-либо хэш. Я бы предложил:
md5(order_id + time() + random_salt_value)
Наконец, сделайте все это на стороне сервера. Все, что генерируется javascript, должно рассматриваться как «вход от пользователя» и никогда не должно быть полностью доверенным. Если у вас должен быть рабочий процесс на основе javascript, у него есть ajax конечные точки для всего этого.
Obfuscation! = Безопасность. – 2010-12-06 17:43:05
@middaparka: Это именно то, что я подумал, когда прочитал вопрос! ;) – jwueller 2010-12-06 17:54:55