Artigo no estilo: Curso

De que se trata o artigo:

Aplicação do padrão W3C Cross-Origin Resource Sharing no desenvolvimento de sistemas que disponibilizem recursos consumíveis por aplicações de outros domínios através de chamadas AJAX, estendendo o conceito de segurança Same Origin Policy.

Em que situação o tema é útil:

Este tema é útil quando precisamos desenvolver aplicações que disponibilizam web services consumíveis por aplicações que não estejam no mesmo domínio ou subdomínio de rede, pois permite a realização de comunicação Cross-Domain.

Resumo DevMan:

O artigo aborda os problemas e dificuldades, derivadas do conceito de segurança Same Origin Policy, na utilização de métodos AJAX para o consumo de recursos de outros domínios, bem como, apresenta como solução a especificação Cross-Origin Resource Sharing.

A especificação CORS é abordada de forma abrangente, detalhando o seu funcionamento teórico, comentando o atual suporte dos navegadores, e demonstrando sua aplicabilidade prática por meio de um estudo de caso, onde uma implementação é desenvolvida com base na tecnologia de filtros da linguagem Java.

Autores: Paulo Vitor S. Rendeiro e Alexsandro T. Santos da Silva

Com o crescimento e a popularização de APIs para o desenvolvimento de aplicações baseadas em AJAX, como jQuery e Prototype, é cada vez maior o número de aplicações Mashup escritas em JavaScript espalhadas pela internet. Estas aplicações combinam dados e códigos de diversas fontes de forma a criar novos serviços e funcionalidades.

Quando desenvolvemos este tipo de aplicação, encontramos algumas dificuldades quando a aplicação tenta realizar alguma forma de comunicação entre domínios distintos. Isso acontece porque os navegadores implementam o conceito de segurança Same Origin Policy (SOP). O SOP é aplicado a linguagens de programação que são executadas no navegador, como JavaScript, e limita o acesso à maioria das propriedades entre páginas de domínios diferentes, como funções JavaScript, cookies e dados de formulários, permitindo apenas que scripts rodando em páginas com o mesmo domínio, na mesma porta e através do mesmo protocolo acessem métodos e propriedades sem nenhum tipo de restrição.

Neste artigo abordaremos a utilização do padrão Cross-Origin Resource Sharing para permitir requisições “client-side” entre diferentes domínios, detalhando seu funcionamento teórico e demonstrando a sua aplicação prática através de um estudo de caso.

O conceito de segurança Same Origin Policy

O Same Origin Policy (SOP) é um conceito importante de segurança que surgiu no navegador Netscape 2.0 e define as restrições de segurança que um JavaScript pode ou não realizar em uma página web. O SOP previne que um documento ou script carregado em um site de uma determinada origem recupere ou altere as propriedades de um documento de uma outra origem. Essas propriedades, que podem ser cookies ou mesmo dados de um formulário, só podem ser acessadas por scripts providos pela mesma origem, protegendo a integridade e a confidencialidade destas informações.

O termo origem é definido pela combinação do protocolo, nome do domínio e, por último, a porta TCP do documento HTML que está rodando o script. Por exemplo, http://foo.com:80representa uma origem, onde HTTP é o protocolo utilizado, foo.comé o domínio da aplicação web e 80 é a porta utilizada para receber as requisições.

Imaginemos um código JavaScript carregado pela página http://provider.com.br/pagina.html tentando acessar propriedades de outras páginas. A Tabela 1 mostra o comportamento do navegador ao tentar se comunicar com cada origem apresentada na coluna URL.

...
Quer ler esse conteúdo completo? Tenha acesso completo