1

Мне интересно, какую личную информацию предоставляет элемент input (<input type="file">) веб-сайту.

Я заметил, что он показывает имя файла, и веб-сайт, кажется, имеет к нему доступ. Как насчет пути к файлу? Если файл находится в Моих документах, они могут узнать имя пользователя по пути (например, C:\Documents and Settings\Bob\My Documents), которое много раз является фактическим именем пользователя, использующим веб-сайт.

Какую информацию большинство современных браузеров позволяют веб-сайту получить доступ, когда пользователь использует элемент ввода файла?

Может ли JavaScript каким-то образом использоваться для получения дополнительной информации?

Как насчет того, когда плагины (такие как Flash или Java) осуществляют загрузку файлов?

3 ответа3

1

В запросе, отправляемом вашим веб-браузером, содержится много информации, но элемент ввода файла содержит только имя файла и содержимое файла. Когда вы отправляете файл через элемент ввода файла, соответствующая часть запроса веб-браузера выглядит примерно так

Content-Disposition: form-data; name="f"; filename="file.txt"
Content-Type: application/octet-stream

сопровождается фактическим содержанием файла. (Примечание. Каждый элемент формы имеет имя , указанное в форме, и значение , введенное или выбранное пользователем. В приведенном выше запросе элемент ввода файла имел имя f в форме.)

Вы правы в том, что путь к имени файла может немного рассказать серверу о вас или вашем компьютере, например, о вашем имени пользователя или имени папки на вашем компьютере. Я протестировал веб-браузеры на своем компьютере и заметил следующее:

  • Internet Explorer 7 отправляет полный диск, путь и имя файла файла. Например, «C:\folder\file.txt».
  • Chrome 4.0, Opera 10.01 и Firefox 3.0 просто отправляют имя файла. Например, «file.txt».

(Кстати, я использовал прокси-сервер Proxomitron на своем компьютере для просмотра запросов, которые отправляли мои браузеры.)

0

Вы можете использовать WireShark для просмотра пакета по мере его поступления на сервер и просмотра всей замечательной информации, которую он отправляет.

Это покажет вам

  • Рамка
  • Заголовок IP
  • Заголовок TCP
  • Заголовок HTTP (все файлы cookie, настройки и т.д., Которые являются стандартными в ЛЮБОМ запросе к браузеру)
  • FormData (закодированный в формате имя / значение) Key=Value&Key2=Value2&Key3=Value3
  • Фактический файл в массивной части прямо под этим
0

Ни один крупный браузер не собирается отправлять что-либо за вашу спину, и все они серьезно ограничивают доступ к JavaScript. Все ставки отключены, когда Flash и Java входят в картинку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .