Uploadify - безопасный способ загрузки изображений, видимый только пользователю, который их загрузил - PullRequest
1 голос
/ 30 марта 2012

Я использую uploadify для загрузки изображений, но, как я скоро понял, объект SWF не использует тот же сеанс, что и браузер.

Причина, по которой мне нуженсеанс должен убедиться, что «хакер» не может загрузить изображение от имени другого пользователя или перезаписать изображение другого пользователя.Я хочу, чтобы каждое изображение было на 100% приватным для загрузчика

Вот параметры, которые я вижу

  1. добавить идентификатор сеанса в запрос вместе с загрузкой
  2. использовать некоторую криптографию для

    • генерации случайного, но трудно подделанного идентификатора изображения (например, подписать токен на стороне сервера, который использует идентификатор пользователя и секрет + случайный UUID,
    • , затем сохраните его в таблице, которая будет сопоставлять идентификатор пользователя с этим токеном (токен - это идентификатор изображения)
    • , а затем передать его в пользовательский интерфейс,
    • объект SWF будетпередать этот токен серверу, где я могу убедиться, что он получен с сервера и не изменен пользователем
    • , затем найти этот токен в таблице, сохранить байты изображения под заполнителем с этим токеном. (и янужно надеяться, что этот токен действительно глобально уникален навсегда, что я не уверен, является ли он на 100% статистически верным, или это так? и если у меня есть один с триллионом идентификаторов дублирующихся изображений, я могу отменить загрузку и заставить пользователяпопробовать еще раз, верно?
  3. какая-то другая опция, о которой я даже не подумал (например, не SWF-решение, например, Ajax?или просто забыть о индикаторе выполнения, это не стоит того, с нашей текущей пропускной способностью, большинство пользователей даже не увидят этого)

  4. просто используйте GUID, трудно угадать, и есликому-то удалось угадать GUID другого пользователя (например, идентификатор сеанса), чем позволить ему весело перезаписать чужое изображение, не правда ли, что они украли свою кредитную карту, верно?

Вопросы

  • Могу ли я использовать вариант 1?это безопасно?
  • Если нет, то вариант 2 в порядке?это слишком много или слишком мало?это изобретать велосипед?Есть ли более простой способ получить безопасную загрузку изображений без сеанса, которая удостоверяет отправителя без возможности подделки со стороны клиента?
  • Или, может быть, есть решение AJAX, которому не нужен SWF для индикатора выполнения?

1 Ответ

2 голосов
/ 08 мая 2012

попробуйте это, у меня это сработало:
Не удается увидеть значения сеанса при использовании Uploadify в ASP.NET .
Идея состоит в том, что вы должны отправить идентификатор сеанса обратносервер и загрузите сеанс в зависимости от него.

...