Я использую uploadify для загрузки изображений, но, как я скоро понял, объект SWF не использует тот же сеанс, что и браузер.
Причина, по которой мне нуженсеанс должен убедиться, что «хакер» не может загрузить изображение от имени другого пользователя или перезаписать изображение другого пользователя.Я хочу, чтобы каждое изображение было на 100% приватным для загрузчика
Вот параметры, которые я вижу
- добавить идентификатор сеанса в запрос вместе с загрузкой
использовать некоторую криптографию для
- генерации случайного, но трудно подделанного идентификатора изображения (например, подписать токен на стороне сервера, который использует идентификатор пользователя и секрет + случайный UUID,
- , затем сохраните его в таблице, которая будет сопоставлять идентификатор пользователя с этим токеном (токен - это идентификатор изображения)
- , а затем передать его в пользовательский интерфейс,
- объект SWF будетпередать этот токен серверу, где я могу убедиться, что он получен с сервера и не изменен пользователем
- , затем найти этот токен в таблице, сохранить байты изображения под заполнителем с этим токеном. (и янужно надеяться, что этот токен действительно глобально уникален навсегда, что я не уверен, является ли он на 100% статистически верным, или это так? и если у меня есть один с триллионом идентификаторов дублирующихся изображений, я могу отменить загрузку и заставить пользователяпопробовать еще раз, верно?
какая-то другая опция, о которой я даже не подумал (например, не SWF-решение, например, Ajax?или просто забыть о индикаторе выполнения, это не стоит того, с нашей текущей пропускной способностью, большинство пользователей даже не увидят этого)
просто используйте GUID, трудно угадать, и есликому-то удалось угадать GUID другого пользователя (например, идентификатор сеанса), чем позволить ему весело перезаписать чужое изображение, не правда ли, что они украли свою кредитную карту, верно?
Вопросы
- Могу ли я использовать вариант 1?это безопасно?
- Если нет, то вариант 2 в порядке?это слишком много или слишком мало?это изобретать велосипед?Есть ли более простой способ получить безопасную загрузку изображений без сеанса, которая удостоверяет отправителя без возможности подделки со стороны клиента?
- Или, может быть, есть решение AJAX, которому не нужен SWF для индикатора выполнения?