aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/conflicting/web/http/cors/index.html
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:49:58 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:49:58 +0100
commit68fc8e96a9629e73469ed457abd955e548ec670c (patch)
tree8529ab9fe63d011f23c7f22ab5a4a1c5563fcaa4 /files/pt-br/conflicting/web/http/cors/index.html
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-68fc8e96a9629e73469ed457abd955e548ec670c.tar.gz
translated-content-68fc8e96a9629e73469ed457abd955e548ec670c.tar.bz2
translated-content-68fc8e96a9629e73469ed457abd955e548ec670c.zip
unslug pt-br: move
Diffstat (limited to 'files/pt-br/conflicting/web/http/cors/index.html')
-rw-r--r--files/pt-br/conflicting/web/http/cors/index.html213
1 files changed, 213 insertions, 0 deletions
diff --git a/files/pt-br/conflicting/web/http/cors/index.html b/files/pt-br/conflicting/web/http/cors/index.html
new file mode 100644
index 0000000000..b1cb255383
--- /dev/null
+++ b/files/pt-br/conflicting/web/http/cors/index.html
@@ -0,0 +1,213 @@
+---
+title: Controle de Acesso do lado do servidor (CORS)
+slug: Web/HTTP/Server-Side_Access_Control
+translation_of: Web/HTTP/CORS
+translation_of_original: Web/HTTP/Server-Side_Access_Control
+---
+<p><font><font>Os sistemas de controle de acesso realizam  </font><font> identificação de </font></font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://searchsoftwarequality.techtarget.com/definition/authorization&amp;usg=ALkJrhgrx7L6XQEL-QG4A5SY3jla7SrNHA" rel="noopener"><font><font>autorização</font></font></a><font><font> ,  </font></font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://searchsecurity.techtarget.com/definition/authentication&amp;usg=ALkJrhhWsbD8tDshChXZ3hnAhempgwOyXw" rel="noopener"><font><font>autenticação</font></font></a><font><font> , aprovação de acesso e prestação de contas de entidades por meio de credenciais de login, incluindo  </font></font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://searchsecurity.techtarget.com/definition/password&amp;usg=ALkJrhilnjZN5ktJEcxF-46B0IA7otOZEg" rel="noopener"><font><font>senhas</font></font></a><font><font> , números de identificação pessoal (PINs),  </font><font> varreduras </font></font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://searchsecurity.techtarget.com/definition/biometrics&amp;usg=ALkJrhhhm_VuMmwP8y53PpOCxVJttPPfhA" rel="noopener"><font><font>biométricas</font></font></a><font><font> e chaves físicas ou eletrônicas.</font></font></p>
+
+<p><font><font>O controle de acesso é uma técnica de segurança que pode ser usada para regular quem ou o que pode exibir ou usar recursos em um ambiente de computação.</font></font></p>
+
+<p>{{HTTPSidebar}}</p>
+
+<p><font><font>Os navegadores enviam </font></font><a href="/pt-BR/docs/Web/HTTP/Headers">Cabeçalhos HTTP </a><font><font><a href="/pt-BR/docs/"> </a>específicos </font><font>para solicitações entre sites iniciadas de dentro </font></font>XMLHttpRequest<font><font> </font></font><font><font>ou da </font></font><a href="/en-US/docs/Web/API/Fetch_API"> </a><a href="/pt-BR/docs/Web/API/Fetch_API/Using_Fetch">Fetch Api </a><font><font>. </font><font>Eles também esperam ver cabeçalhos HTTP específicos enviados de volta com respostas entre sites. </font><font>Uma visão geral desses cabeçalhos, incluindo amostra de código JavaScript que inicia solicitações e processa respostas do servidor, além de uma discussão sobre cada cabeçalho, pode ser encontrada no artigo</font></font> <a href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS">HTTP Access Control (CORS) article</a><font><font> e deve ser lida como um artigo complementar para este. </font><font>Este artigo aborda o processamento de </font></font><strong><font><font>solicitações de controle de acesso</font></font></strong><font><font> e a formulação de </font></font><strong><font><font>respostas de controle de acesso</font></font></strong><font><font>em PHP. </font><font>O público-alvo deste artigo são programadores ou administradores de servidores. </font><font>Embora os exemplos de código mostrados aqui estejam em PHP, conceitos semelhantes se aplicam ao ASP.net, Perl, Python, Java, etc .; </font><font>em geral, esses conceitos podem ser aplicados a qualquer ambiente de programação do servidor que processa solicitações HTTP e formula dinamicamente respostas HTTP.</font></font></p>
+
+<h2 id="Discussão_de_cabeçalhos_HTTP"><font><font>Discussão de cabeçalhos HTTP</font></font></h2>
+
+<p><font><font>O artigo que cobre os<a href="/pt-BR/docs/Web/HTTP/Headers"> cabeçalhos HTTP usados por clientes e servidores</a></font></font> <font><font>deve ser considerado leitura de pré-requisito.</font></font></p>
+
+<h2 id="Amostras_de_código_de_trabalho"><font><font>Amostras de código de trabalho</font></font></h2>
+
+<p><font><font>Os trechos de PHP (e as invocações de JavaScript para o servidor) nas seções subseqüentes são obtidos das </font></font><a class="external" href="http://arunranga.com/examples/access-control/" rel="noopener"><font><font>amostras de código de trabalho postadas aqui. </font></font></a><font><font>Eles funcionarão em navegadores que implementam sites cruzados </font></font>{{domxref("XMLHttpRequest")}}.</p>
+
+<h2 id="Solicitações_simples_entre_sites"><font><font>Solicitações simples entre sites</font></font></h2>
+
+<p><a href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS">Solicitações simples de controle de acesso </a><font><font><a href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests"> </a>são iniciadas quando:</font></font></p>
+
+<ul>
+ <li><font><font>Um HTTP / 1.1 </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/GET" title="O método HTTP GET solicita uma representação do recurso especificado. Solicitações usando GET devem recuperar apenas dados."><code>GET</code></a><font><font> ou a </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/POST" title="O método HTTP POST envia dados para o servidor. O tipo do corpo da solicitação é indicado pelo cabeçalho Content-Type."><code>POST</code></a><font><font> é usado como método de solicitação. </font><font>No caso de um POST, o </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Content-Type" title="O cabeçalho da entidade Content-Type é usado para indicar o tipo de mídia do recurso."><code>Content-Type</code></a><font><font> do corpo do pedido é uma de </font></font><code>application/x-www-form-urlencoded</code><font><font>, </font></font><code>multipart/form-data</code><font><font>ou</font></font><code>text/plain.</code></li>
+ <li><font><font>Nenhum cabeçalho personalizado é enviado com a solicitação HTTP (como </font></font><code>X-Modified</code><font><font>, etc.)</font></font></li>
+</ul>
+
+<p><font><font>Nesse caso, as respostas podem ser enviadas de volta com base em algumas considerações.</font></font></p>
+
+<ul>
+ <li><font><font>Se o recurso em questão for amplamente acessado (como qualquer recurso HTTP acessado pelo GET), o envio do </font><font>cabeçalho será suficiente, a </font><strong><font>menos que</font></strong><font> o recurso precise de credenciais, como </font><font>informações de autenticação de </font><a href="/pt-BR/docs/Web/HTTP/Cookies"><font>cookies</font></a><font> e HTTP. </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Origin" title="O cabeçalho da resposta Access-Control-Allow-Origin indica se a resposta pode ser compartilhada com o código solicitante da origem especificada."><code>Access-Control-Allow-Origin</code></a><code>: *</code></li>
+ <li><font><font>Se o recurso deve ser mantido restrito com base no domínio do solicitante, </font></font><strong><font><font>OU</font></font></strong><font><font> se o recurso precisar ser acessado com credenciais (ou define credenciais), </font></font><a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin&amp;usg=ALkJrhhwNS3HqZius2soHeJ_asp-bwvgYA" title="O cabeçalho da solicitação de origem indica de onde uma busca se origina. Não inclui nenhuma informação de caminho, mas apenas o nome do servidor. É enviado com solicitações CORS, bem como com solicitações POST. É semelhante ao cabeçalho Referer, mas, diferentemente desse cabeçalho, não divulga todo o caminho."><code>Origin</code></a><font><font> pode ser necessário </font><font>filtrar pelo </font><font>cabeçalho </font><font>da solicitação </font><font>ou, pelo menos, repetir o retorno do solicitante </font></font><code>Origin</code><font><font> ( por exemplo </font><font>). </font><font>Além disso, o </font><font>cabeçalho deverá ser enviado. </font><font>Isso é discutido em uma </font><a href="/pt-BR/docs/Web/HTTP/Server-Side_Access_Control"><font>seção subsequente</font></a><font> . </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Origin" title="O cabeçalho da resposta Access-Control-Allow-Origin indica se a resposta pode ser compartilhada com o código solicitante da origem especificada."><code>Access-Control-Allow-Origin</code></a><code>: <a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://arunranga.com/&amp;usg=ALkJrhjGkKIBAoEKxwNFuLJLg9smgZgatQ" rel="freelink noopener">http://arunranga.com </a></code><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials" title='O cabeçalho de resposta Access-Control-Allow-Credentials informa aos navegadores se deve expor a resposta ao código JavaScript de front-end quando o modo de credenciais da solicitação (Request.credentials) é "include".'><code>Access-Control-Allow-Credentials</code></a><code>: true</code></li>
+</ul>
+
+<p><font><font>A seção </font></font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS"><font><font>Solicitações de controle de acesso simples</font></font></a><font><font> mostra as trocas de cabeçalho entre cliente e servidor. </font><font>Aqui está um segmento de código PHP que lida com uma solicitação simples:</font></font></p>
+
+<pre class="brush: php">&lt;?php
+
+// Consideremos acesso apenas ao domínio arunranga.com
+// Que achamos seguro acessar esse recurso como aplicattion / xml
+
+if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+ header('Access-Control-Allow-Origin: http://arunranga.com');
+ header('Content-type: application/xml');
+ readfile('arunerDotNetResource.xml');
+} else {
+ header('Content-Type: text/html');
+ echo "&lt;html&gt;";
+ echo "&lt;head&gt;";
+ echo " &lt;title&gt;Another Resource&lt;/title&gt;";
+ echo "&lt;/head&gt;";
+ echo "&lt;body&gt;",
+ "&lt;p&gt;This resource behaves two-fold:";
+ echo "&lt;ul&gt;",
+ "&lt;li&gt;If accessed from &lt;code&gt;http://arunranga.com&lt;/code&gt; it returns an XML document&lt;/li&gt;";
+ echo "&lt;li&gt;If accessed from any other origin including from simply typing in the URL into the browser's address bar,";
+ echo "you get this HTML document&lt;/li&gt;",
+ "&lt;/ul&gt;",
+ "&lt;/body&gt;",
+ "&lt;/html&gt;";
+}
+?&gt;
+</pre>
+
+<p><font><font>O </font></font><a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin&amp;usg=ALkJrhhwNS3HqZius2soHeJ_asp-bwvgYA" title="O cabeçalho da solicitação de origem indica de onde uma busca se origina. Não inclui nenhuma informação de caminho, mas apenas o nome do servidor. É enviado com solicitações CORS, bem como com solicitações POST. É semelhante ao cabeçalho Referer, mas, diferentemente desse cabeçalho, não divulga todo o caminho."><code>Origin</code></a><font><font> item </font><font>acima verifica se o </font><font>cabeçalho enviado pelo navegador (obtido através de $ _SERVER ['HTTP_ORIGIN']]) corresponde a ' </font></font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://arunranga.com/&amp;usg=ALkJrhjGkKIBAoEKxwNFuLJLg9smgZgatQ" rel="freelink noopener"><font><font>http://arunranga.com</font></font></a><font><font> '. </font><font>Se sim, ele retorna </font><font>. </font><font>Este exemplo pode ser </font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://arunranga.com/examples/access-control/&amp;usg=ALkJrhgk6_MrqOBSrD829megYQb7ZI8x5w" rel="noopener"><font>visto em execução aqui</font></a><font> . </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Origin" title="O cabeçalho da resposta Access-Control-Allow-Origin indica se a resposta pode ser compartilhada com o código solicitante da origem especificada."><code>Access-Control-Allow-Origin</code></a><code>: <a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://arunranga.com/&amp;usg=ALkJrhjGkKIBAoEKxwNFuLJLg9smgZgatQ" rel="freelink noopener">http://arunranga.com</a></code></p>
+
+<h2 id="Solicitações_comprovadas"><font><font>Solicitações comprovadas</font></font></h2>
+
+<p><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS"><font><font>Solicitações de controle de acesso comprovadas</font></font></a><font><font> ocorrem quando:</font></font></p>
+
+<ul>
+ <li><font><font>Um outro método que não </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/GET" title="O método HTTP GET solicita uma representação do recurso especificado. Solicitações usando GET devem recuperar apenas dados."><code>GET</code></a><font><font> ou </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/POST" title="O método HTTP POST envia dados para o servidor. O tipo do corpo da solicitação é indicado pelo cabeçalho Content-Type."><code>POST</code></a><font><font>é utilizado, ou se </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/POST" title="O método HTTP POST envia dados para o servidor. O tipo do corpo da solicitação é indicado pelo cabeçalho Content-Type."><code>POST</code></a><font><font> é usado com um </font></font>{{HTTPHeader("Content-Type")}} diferente de um <code>application/x-www-form-urlencoded</code>, <code>multipart/form-data </code>ou <font><font> </font></font><code>text/plain</code><font><font>. </font></font><span class="tlid-translation translation" lang="pt"><span title="">Por exemplo, se o Tipo de Conteúdo do corpo <code>POST</code> for <code>application / xml</code>, uma solicitação será comprovada.</span></span></li>
+ <li><font><font>Um cabeçalho personalizado (como </font></font><code>X-PINGARUNER</code><font><font>) é enviado com a solicitação.</font></font></li>
+</ul>
+
+<p><font><font>A seção </font></font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS"><font><font>Solicitações de controle de acesso</font></font></a><font><font> comprovado mostra uma troca de cabeçalho entre cliente e servidor. </font><font>Um recurso do servidor que responde a uma solicitação de comprovação precisa poder fazer as seguintes determinações:</font></font></p>
+
+<ul>
+ <li><font><font>Filtragem baseada </font></font><a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin&amp;usg=ALkJrhhwNS3HqZius2soHeJ_asp-bwvgYA" title="O cabeçalho da solicitação de origem indica de onde uma busca se origina. Não inclui nenhuma informação de caminho, mas apenas o nome do servidor. É enviado com solicitações CORS, bem como com solicitações POST. É semelhante ao cabeçalho Referer, mas, diferentemente desse cabeçalho, não divulga todo o caminho."><code>Origin</code></a><font><font>, se houver.</font></font></li>
+ <li><font><font>Resposta a uma </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/OPTIONS" title="O método HTTP OPTIONS é usado para descrever as opções de comunicação para o recurso de destino. O cliente pode especificar uma URL para o método OPTIONS ou um asterisco (*) para se referir a todo o servidor."><code>OPTIONS</code></a><font><font> solicitação (que é a solicitação de comprovação), incluindo o envio de valores necessários com </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Methods" title="O cabeçalho de resposta Access-Control-Allow-Methods especifica o método ou métodos permitidos ao acessar o recurso em resposta a uma solicitação de comprovação."><code>Access-Control-Allow-Methods</code></a><font><font>, </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Headers" title="O cabeçalho de resposta Access-Control-Allow-Headers é usado em resposta a uma solicitação de comprovação que inclui os Access-Control-Request-Headers para indicar quais cabeçalhos HTTP podem ser usados ​​durante a solicitação real."><code>Access-Control-Allow-Headers</code></a><font><font>(se forem necessários cabeçalhos adicionais para que o aplicativo funcione) e, se credenciais forem necessárias para este recurso </font></font><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials" title='O cabeçalho de resposta Access-Control-Allow-Credentials informa aos navegadores se deve expor a resposta ao código JavaScript de front-end quando o modo de credenciais da solicitação (Request.credentials) é "include".'><code>Access-Control-Allow-Credentials</code></a><font><font>,.</font></font></li>
+ <li><font><font>Resposta à solicitação real, incluindo manipulação de </font></font><code>POST</code><font><font> dados, etc.</font></font></li>
+</ul>
+
+<p><font><font>Aqui está um exemplo no PHP de manipulação de uma </font></font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS#Preflighted_requests"><font><font>solicitação preflighted</font></font></a><font><font> :</font></font></p>
+
+<pre class="brush: php">&lt;?php
+
+if($_SERVER['REQUEST_METHOD'] == "GET") {
+
+ header('Content-Type: text/plain');
+  echo "This HTTP resource is designed to handle POSTed XML input";
+ echo "from arunranga.com and not be retrieved with GET";
+
+} elseif($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
+ // Diga ao cliente que apoiamos arunranga.com
+ // e que esse comprovante seja válido por 20 dias
+
+  if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+    header('Access-Control-Allow-Origin: http://arunranga.com');
+    header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
+    header('Access-Control-Allow-Headers: X-PINGARUNER');
+    header('Access-Control-Max-Age: 1728000');
+    header("Content-Length: 0");
+    header("Content-Type: text/plain");
+    //exit(0);
+  } else {
+    header("HTTP/1.1 403 Access Forbidden");
+    header("Content-Type: text/plain");
+    echo "You cannot repeat this request";
+ }
+
+} elseif($_SERVER['REQUEST_METHOD'] == "POST") {
+ // Manipula o post primeiro obtendo o blob XML POST
+ // e, em seguida, fazendo algo e enviando resultados para o cliente
+
+ if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+ $postData = file_get_contents('php://input');
+    $document = simplexml_load_string($postData);
+
+ // Faça algo com os dados POST
+
+    $ping = $_SERVER['HTTP_X_PINGARUNER'];
+
+    header('Access-Control-Allow-Origin: http://arunranga.com');
+    header('Content-Type: text/plain');
+    echo // some string response after processing
+  } else {
+  die("POSTing Only Allowed from arunranga.com");
+ }
+} else {
+    die("No Other Methods Allowed");
+}
+?&gt;
+</pre>
+
+<p><font><font>Observe os cabeçalhos apropriados sendo enviados de volta em resposta à </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/OPTIONS" title="O método HTTP OPTIONS é usado para descrever as opções de comunicação para o recurso de destino. O cliente pode especificar uma URL para o método OPTIONS ou um asterisco (*) para se referir a todo o servidor."><code>OPTIONS</code></a><font><font> comprovação, bem como aos </font></font><a href="/pt-BR/docs/Web/HTTP/Methods/POST" title="O método HTTP POST envia dados para o servidor. O tipo do corpo da solicitação é indicado pelo cabeçalho Content-Type."><code>POST</code></a><font><font> dados. </font><font>Um recurso lida com a comprovação e com a solicitação real. </font><font>Na resposta à </font></font><code>OPTIONS</code><font><font> solicitação, o servidor notifica o cliente de que a solicitação real pode realmente ser feita com o </font></font><code>POST</code><font><font> método e campos de cabeçalho como </font></font><code>X-PINGARUNER</code><font><font>podem ser enviados com a solicitação real. </font><font>Este exemplo pode ser </font></font><a class="external" href="http://arunranga.com/examples/access-control/" rel="noopener"><font><font>visto em execução aqui</font></font></a><font><font> .</font></font></p>
+
+<h2 id="Solicitações_credenciadas"><font><font>Solicitações credenciadas</font></font></h2>
+
+<p><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS#Requests_with_credentials"><font><font>Solicitações de controle de acesso credenciadas</font></font></a><font><font> - ou seja, solicitações acompanhadas de informações sobre </font></font><a href="/pt-BR/docs/Web/HTTP/Cookies"><font><font>cookies</font></font></a><font><font> ou autenticação HTTP (e que esperam que os cookies sejam enviados com respostas) - podem ser </font></font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS#Simple_requests"><font><font>simples</font></font></a><font><font> ou </font></font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS#Preflighted_requests"><font><font>comprovadas</font></font></a><font><font> , dependendo dos métodos de solicitação utilizados.</font></font></p>
+
+<p><font><font>Em um </font><font>cenário de </font></font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS#Simple_requests"><font><font>solicitação simples</font></font></a><font><font> , a solicitação será enviada com cookies (por exemplo, se o </font></font><code><a href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials&amp;usg=ALkJrhgvgswWP53yIsn9CbNdLjlz6qnTuw">withCredentials</a></code><font><font> sinalizador estiver ativado </font></font><a href="/pt-BR/docs/Web/API/XMLHttpRequest" title="Use objetos XMLHttpRequest (XHR) para interagir com servidores. Você pode recuperar dados de um URL sem precisar atualizar a página inteira. Isso permite que uma página da Web atualize apenas parte de uma página sem interromper o que o usuário está fazendo."><code>XMLHttpRequest</code></a><font><font>). </font><font>Se o servidor responder com </font><font>anexado à resposta credenciada, a resposta será aceita pelo cliente e exposta ao conteúdo da web. </font><font>Em uma </font><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS#Preflighted_requests"><font>solicitação comprovada</font></a><font> , </font></font>Se o servidor responder com <code><a href="/pt-BR/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials">Access-Control-Allow-Credentials</a>: true</code> anexado à resposta credenciada, a resposta será aceita pelo cliente e exposta ao conteúdo da Web. Em uma Solicitação Comprovada, o servidor pode responder com <code>Acesso-Controle-Permitir Credenciais: true</code> à solicitação <code>OPTIONS</code>.</p>
+
+<p><font><font>Aqui está um PHP que lida com solicitações credenciadas:</font></font></p>
+
+<pre class="brush: php">&lt;?php
+
+if($_SERVER['REQUEST_METHOD'] == "GET") {
+ header('Access-Control-Allow-Origin: http://arunranga.com');
+ header('Access-Control-Allow-Credentials: true');
+ header('Cache-Control: no-cache');
+ header('Pragma: no-cache');
+ header('Content-Type: text/plain');
+
+ // Primeiro, veja se existe um cookie
+ if (!isset($_COOKIE["pageAccess"])) {
+ setcookie("pageAccess", 1, time()+2592000);
+ echo 'I do not know you or anyone like you so I am going to';
+ echo 'mark you with a Cookie :-)';
+ } else {
+ $accesses = $_COOKIE['pageAccess'];
+ setcookie('pageAccess', ++$accesses, time()+2592000);
+ echo 'Hello -- I know you or something a lot like you!';
+ echo 'You have been to ', $_SERVER['SERVER_NAME'], ';
+ echo 'at least ', $accesses-1, ' time(s) before!';
+ }
+} elseif($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
+ // Diga ao cliente que esse comprovante permanece válido por apenas 20 dias
+ if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+ header('Access-Control-Allow-Origin: http://arunranga.com');
+ header('Access-Control-Allow-Methods: GET, OPTIONS');
+ header('Access-Control-Allow-Credentials: true');
+ header('Access-Control-Max-Age: 1728000');
+ header("Content-Length: 0");
+ header("Content-Type: text/plain");
+ } else {
+ header("HTTP/1.1 403 Access Forbidden");
+ header("Content-Type: text/plain");
+ echo "You cannot repeat this request";
+ }
+} else {
+ die("This HTTP Resource can ONLY be accessed with GET or OPTIONS");
+}
+?&gt;
+</pre>
+
+<p><font><font>Observe que, no caso de solicitações credenciadas, o </font></font><code>Access-Control-Allow-Origin:</code><font><font> cabeçalho </font></font><strong><font><font>não deve</font></font></strong><font><font> ter um valor curinga de <strong>"*"</strong>. </font><font>Ele </font></font><strong><font><font>deve</font></font></strong><font><font> mencionar um domínio de origem válido. </font><font>O exemplo acima pode ser visto em </font></font><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://arunranga.com/examples/access-control/&amp;usg=ALkJrhgk6_MrqOBSrD829megYQb7ZI8x5w" rel="noopener"><font><font>execução aqui</font></font></a><font><font> .</font></font></p>
+
+<h2 id="Exemplos_do_Apache"><font><font>Exemplos do Apache</font></font></h2>
+
+<h3 id="Restringir_o_acesso_a_determinados_URIs"><font><font>Restringir o acesso a determinados URIs</font></font></h3>
+
+<p><font><font>Um truque útil é usar uma reescrita do Apache, variável de ambiente e cabeçalhos para aplicar </font></font><code>Access-Control-Allow-*</code><font><font>a determinados URIs. </font><font>Isso é útil, por exemplo, para restringir solicitações de origem cruzada a </font></font><code>GET /api(.*).json</code><font><font>solicitações sem credenciais:</font></font></p>
+
+<pre>RewriteRule ^/api(.*)\.json$ /api$1.json [CORS=True]
+Header set Access-Control-Allow-Origin "*" env=CORS
+Header set Access-Control-Allow-Methods "GET" env=CORS
+Header set Access-Control-Allow-Credentials "false" env=CORS
+</pre>
+
+<h2 id="Veja_também"><font><font>Veja também</font></font></h2>
+
+<ul>
+ <li><a class="external" href="https://translate.googleusercontent.com/translate_c?depth=1&amp;pto=aue&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=pt&amp;u=http://arunranga.com/examples/access-control/&amp;usg=ALkJrhgk6_MrqOBSrD829megYQb7ZI8x5w" rel="noopener"><font><font>Exemplos de controle de acesso em ação</font></font></a></li>
+ <li><a class="external" href="https://github.com/jackblackevo/cors-jsonp-sample" rel="noopener"><font><font>Amostra do lado do cliente e do lado do servidor (Java) para compartilhamento de recursos de origem cruzada (CORS)</font></font></a></li>
+ <li><a class="internal" href="/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS"><font><font>Controle de acesso HTTP cobrindo os cabeçalhos HTTP</font></font></a></li>
+ <li><a href="/pt-BR/docs/Web/API/XMLHttpRequest" title="Use objetos XMLHttpRequest (XHR) para interagir com servidores. Você pode recuperar dados de um URL sem precisar atualizar a página inteira. Isso permite que uma página da Web atualize apenas parte de uma página sem interromper o que o usuário está fazendo."><code>XMLHttpRequest</code></a></li>
+ <li><a href="/pt-BR/docs/Web/API/Fetch_API"><font><font>Fetch API</font></font></a></li>
+</ul>