Pergunta

Por que navegadores aplicar a política de mesma origem para XMLHttpRequest? É muito inconveniente para os desenvolvedores, mas parece que ele faz pouco em hackers realmente parar. Existem soluções, eles ainda podem incluir javascript a partir de fontes externas (o poder por trás JSONP).

Parece que um "recurso" ultrapassado em uma teia que é em grande parte interligadas.

Foi útil?

Solução

Porque um XMLHttpRequest passa tokens de autenticação do usuário. Se o usuário estivesse conectado em example.com com autenticação básica ou alguns biscoitos, em seguida, visitou attacker.com, este site pode criar um XMLHttpRequest para example.com com autorização total para esse usuário e ler qualquer página particular que o usuário poderia (em seguida, enviá-lo de volta para o atacante).

Porque colocando fichas secretas nas páginas webapp é a maneira de parar de simples ataques Cross-Site-Request-falsificação, este meio attacker.com poderia tomar quaisquer ações na página o usuário poderia pelo example.com sem qualquer consentimento ou interação de eles. Global de XMLHttpRequest é cross-site-scripting global.

(Mesmo se você tivesse uma versão do XMLHttpRequest que não passou de autenticação, ainda existem problemas. Por exemplo, um invasor pode fazer pedidos para outras máquinas não-públicas na sua intranet e ler todos os arquivos que podem ser baixados a partir deles que não pode ser destinado ao consumo público. etiquetas <script> já sofrem de uma forma limitada deste tipo de vulnerabilidade, mas as respostas totalmente legíveis de XMLHttpRequest iria vazar todos os tipos de arquivos em vez de uns poucos, infelizmente trabalhada que podem analisar como JavaScript .)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top