O elemento INPUT HTML do arquivo de upload fornece informações pessoais?

1

Gostaria de saber quais informações pessoais o elemento de entrada de arquivo ( <input type="file"> ) fornece ao site.

Percebi que ele mostra o nome do arquivo e o site parece ter acesso a ele. E quanto ao caminho do arquivo? Se o arquivo estiver localizado em Meus documentos, eles poderão descobrir o nome do usuário por meio do caminho (por exemplo, C:\Documents and Settings\Bob\My Documents ), que muitas vezes é o nome do usuário real que está usando o site.

Que informações os navegadores mais modernos permitem que o site acesse quando um usuário usa o elemento de entrada de arquivo?

O JavaScript poderia, de alguma forma, ser usado para obter mais informações?

E quando plugins (como Flash ou Java) implementam o upload de arquivos?

    
por Senseful 07.05.2010 / 01:10

3 respostas

1

Há muitas informações na solicita que seu navegador da Web seja enviado , mas o arquivo O elemento de entrada está contribuindo apenas com o nome do arquivo e o conteúdo do arquivo. Quando você envia um arquivo por meio de um elemento de entrada de arquivo, a parte relevante da solicitação do navegador da Web é semelhante a esta

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

seguido do conteúdo real do arquivo. (Nota: Cada item de formulário tem um nome que foi especificado no formulário e um valor que o usuário inseriu ou selecionou. Na solicitação acima, o elemento de entrada de arquivo nome f no formulário.)

Você está certo de que o caminho do nome do arquivo pode dizer ao servidor um pouco sobre você ou seu computador, como seu nome de usuário ou nome de pasta no seu computador. Eu testei os navegadores no meu computador e notei o seguinte:

  • O Internet Explorer 7 envia a unidade, o caminho e o nome de arquivo completos do arquivo. Por exemplo, "C: \ folder \ file.txt".
  • O
  • Chrome 4.0, o Opera 10.01 e o Firefox 3.0 apenas enviam o nome do arquivo. Por exemplo, "file.txt".

(A propósito, eu usei o servidor proxy Proxomitron no meu próprio computador para ver as solicitações que meus navegadores estavam enviando.)

    
por 07.05.2010 / 03:46
0

Você pode usar o WireShark para visualizar o pacote enquanto ele vai para o servidor e ver todas as maravilhosas informações que ele envia.

Isso mostrará a você

  • O quadro
  • O cabeçalho IP
  • O cabeçalho TCP
  • O cabeçalho HTTP (todos os cookies, configurações etc., que são padrão em QUALQUER solicitação para um navegador)
  • O FormData (codificado em formato nome / valor) Key=Value&Key2=Value2&Key3=Value3
  • O arquivo real em um pedaço enorme logo abaixo desse
por 07.05.2010 / 02:10
0

Nenhum navegador principal enviará nada para você, e todos eles limitam severamente o que o JavaScript pode acessar. Todas as apostas estão desativadas quando o Flash e o Java entram na foto.

    
por 07.05.2010 / 04:59