<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Segurança - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Segurança - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 17 May 2026 08:32:04 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/seguranca/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como funcionam as senhas únicas dependentes do tempo e por que usá-las em suas aplicações ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Prakash Sharma Com o aumento das ameaças à segurança cibernética, tornou-se cada vez mais necessário atualizar os padrões de segurança de suas aplicações para a web. Você precisa se certificar de que as contas de seus usuários estejam seguras. Hoje em dia, muitas aplicações da web on-line estão ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-usar-senhas-unicas-dependentes-do-tempo-e-por-que-usa-las-em-suas-aplicacoes/</link>
                <guid isPermaLink="false">6628069028986303fd725af3</guid>
                
                    <category>
                        <![CDATA[ Segurança ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Tue, 23 Apr 2024 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2024/04/1_NtO_nq3H7lfuDd9nL9pRWg.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-time-based-one-time-passwords-work-and-why-you-should-use-them-in-your-app-fdd2b9ed43c3/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How Time-based One-Time Passwords work and why you should use them in your app.</a>
      </p><p>Escrito por: Prakash Sharma</p><p>Com o aumento das ameaças à segurança cibernética, tornou-se cada vez mais necessário atualizar os padrões de segurança de suas aplicações para a web. Você precisa se certificar de que as contas de seus usuários estejam seguras.</p><p>Hoje em dia, muitas aplicações da web <em>on-line</em> estão pedindo aos usuários para adicionar uma camada extra de segurança à sua conta. Elas fazem isso habilitando a autenticação de 2 fatores. Existem vários métodos de implementação da autenticação de 2 fatores – a autenticação TOTP (o algoritmo de senha única dependente do tempo – do inglês, <em>Time-based One Time Password</em>) é um deles.</p><p>Este artigo explica o que é, como e por que usar esse algoritmo. Antes de entender isso, no entanto, vamos dar uma breve olhada no que significa autenticação de dois fatores.</p><h3 id="o-que-a-autentica-o-de-dois-fatores"><strong>O que é a autenticação de dois fatores?</strong></h3><p>A autenticação de 2 fatores (ou autenticação de multifator) é apenas uma camada extra de segurança para a conta de um usuário. Isso significa que, depois de habilitar a autenticação de dois fatores, o usuário precisa passar por mais uma etapa para fazer login com êxito. Por exemplo, as etapas usuais para se fazer login em uma conta são:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2024/04/ZqTllcloHTWpzWYDh-YsnOggoitxJSicGiVj.png" class="kg-image" alt="ZqTllcloHTWpzWYDh-YsnOggoitxJSicGiVj" width="481" height="181" loading="lazy"><figcaption>Sem a autenticação de dois fatores: pede-se aos usuários que insiram e-mail ou id de usuário e senha. Se as credenciais estiverem corretas, o usuário consegue fazer login.</figcaption></figure><p>Ao habilitar a autenticação de dois fatores, os passos agora passam a ser:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2024/04/inJY5oemUFqSO2g5G6HvPpNt0I74XF0hlRKV.png" class="kg-image" alt="inJY5oemUFqSO2g5G6HvPpNt0I74XF0hlRKV" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2024/04/inJY5oemUFqSO2g5G6HvPpNt0I74XF0hlRKV.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2024/04/inJY5oemUFqSO2g5G6HvPpNt0I74XF0hlRKV.png 800w" width="800" height="195" loading="lazy"><figcaption>Com a autenticação de dois fatores: pede-se aos usuários que insiram e-mail ou id de usuário e senha. Se as credenciais estiverem corretas, pede-se ao usuário que insira um código específico (normalmente conhecido como senha de uso único). Se o código estiver correto, o usuário consegue fazer login.</figcaption></figure><p>Portanto, isso adiciona mais uma etapa ao processo de login. Esse método é mais seguro, porque um criminoso não pode acessar a conta do usuário, a menos que tenha acesso à senha normal do usuário e à senha única.</p><p>Atualmente, existem dois métodos amplamente utilizados para obter essa senha única:</p><ol><li><strong>Com base em um SMS:</strong> nesse método, toda vez que o usuário faz login, ele recebe uma mensagem de texto para seu número de telefone registrado, que contém uma senha única.</li><li><strong>Com base na senha única dependente do tempo<strong>:</strong></strong> nesse método, ao habilitar a autenticação de dois fatores, solicita-se ao usuário que faça o escaneamento de uma imagem com código QR usando uma aplicação específica no smartphone. A aplicação gera continuamente senhas de uso único dependentes do tempo para o usuário.</li></ol><p>O método baseado em SMS não precisa de muita explicação. É fácil, mas tem seus problemas, como esperar pelo SMS em cada tentativa de login, problemas de segurança e assim por diante. O método baseado nas senhas de uso único dependentes do tempo está se tornando popular por causa de suas vantagens sobre o método baseado em SMS. Então, vamos entender como funciona o método das senhas de uso único dependentes do tempo.</p><h3 id="como-o-m-todo-das-senhas-de-uso-nico-dependentes-do-tempo-funcionam"><strong>Como o método das senhas de uso único dependentes do tempo funcionam</strong></h3><p>Antes de entender isso, vamos primeiro discutir quais problemas esse método resolverá para nós.</p><p>Ao usarmos esse método, estamos criando uma senha única no lado do usuário (em vez de no lado do servidor) através de uma aplicação para smartphone.</p><p>Isso significa que os usuários sempre têm acesso à sua senha única. Assim, isso impede que o servidor envie uma mensagem de texto toda vez que o usuário tenta fazer login.</p><p>Além disso, a senha gerada muda após um determinado intervalo de tempo, para que se comporte como uma senha única.</p><p>Agora, vamos entender o funcionamento do método e tentar implementar a solução acima nós mesmos. Nossos requisitos aqui são criar uma senha no lado do usuário e que essa senha deve continuar mudando.</p><p>A seguir, veremos um modo de implementar essa solução:</p><pre><code>Quando o usuário habilita a autenticação de dois fatores:

1. O servidor de back-end cria uma chave secreta para aquele usuário específico.
2. O servidor, então, compartilha aquela chave secreta com a aplicação do trelefone do usuário
3. A aplicação do telefone inicia um contador.
4. A aplicação do telefone gera uma senha de uso único com aquela chave secreta e com o contador.
5. A aplicação do telefone muda o contador após determinado intervalo e gera novamente uma senha de uso único, o que a torna dinâmica.</code></pre><p>Isso deve funcionar, mas há três problemas principais com isso:</p><ol><li>Como a aplicação gerará uma senha de uso único com a chave secreta e com o contador?</li><li>Como o contador será atualizado? Como o servidor da web vai acompanhar o contador?</li><li>Como o servidor compartilhará a chave secreta com a aplicação do telefone?</li></ol><p>A solução do primeiro problema é definida pelo uso do algoritmo HOTP.</p><h3 id="entendendo-o-hotp-"><strong>Entendendo o HOTP:</strong></h3><p>HOTP é a sigla em inglês para "HMAC-Based One-Time Password" (em português, senha de uso único com base em HMAC). Esse algoritmo foi publicado inicialmente como <a href="https://tools.ietf.org/html/rfc4226" rel="noopener">RFC4226</a> pela <a href="https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force" rel="noopener">Internet Engineering Task Force</a> (IETF). O HOTP define um algoritmo para criar uma senha de uso único a partir de uma chave secreta e de um contador.</p><p>É possível usar esse algoritmo em duas etapas:</p><ol><li>A primeira etapa é criar um <em>hash</em> <a href="https://en.wikipedia.org/wiki/HMAC" rel="noopener">HMAC</a> a partir da chave secreta e do contador.</li></ol><pre><code>// Obtenha o hash HMAC (usando o algoritmo de criação de hash SHA-1) a partir da chave secreta e do contador
hmacHash = HMAC-SHA-1(chaveSecreta, contador);</code></pre><p>2. O resultado desse código seria uma <em>string</em> de 20 bytes. Essa <em>string</em> longa não é adequada como uma senha de uso único. Então, precisamos de uma maneira de reduzi-la. O HOTP define uma maneira de fazer isso deixando-a no comprimento desejado.</p><pre><code>// hmacHash[19] representa o 19º byte da string.
offset = hmacHash[19] &amp; 0xf;
hashReduzido = (hmacHash[offset++] &amp; 0x7f) &lt;&lt; 24 | (hmacHash[offset++] &amp; 0xff) &lt;&lt; 16 | (hmacHash[offset++] &amp; 0xff) &lt;&lt; 8 | (hmacHashh[offset++] &amp; 0xff);
finalOTP = (hashReduzido % (10 ^ numeroDeDigitosExigidosNaSenha));</code></pre><p>Pode parecer assustador, mas não é. Nesse algoritmo, primeiramente, obtemos o <code>offset</code>, que são os últimos 4 bits de <code>hmacHash[19]</code>. Depois disso, concatenamos os bytes de <code>hmacHash[offset]</code> em <code>hmacHash[offset+3]</code> e armazenamos os últimos 31 bits de <code>hashReduzido</code>. Por fim, usando uma operação simples de módulo (<code>%</code>), obtemos a senha de uso único do tamanho desejado.</p><p>Isso, praticamente, define o algoritmo do HOTP. O documento <a href="https://tools.ietf.org/html/rfc4226">RFA4226</a> explica por que essa é a maneira mais segura de se obter uma senha única desses dois valores.</p><p>Então, encontramos uma maneira de obter uma senha única usando uma chave secreta e um contador. O segundo problema é: como acompanhar o contador?</p><p>A solução para o segundo problema é encontrada na TOTP (abreviação para <em>Time-Based One-Time Password</em>, em inglês).</p><h3 id="entendendo-a-totp-"><strong>Entendendo a TOTP:</strong></h3><p>TOTP é a abreviação de "Time-Based One-Time Password". Ela foi publicada na <a href="https://tools.ietf.org/html/rfc6238" rel="noopener">RFC6238</a> pela <a href="https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force" rel="noopener">IETF</a>.</p><p>Uma TOTP usa o algoritmo do HOTP para obter a senha de uso único. A única diferença é que ele usa "tempo" no lugar do "contador", o que nos dá a solução para o nosso segundo problema.</p><p>Isso significa que, em vez de inicializar o contador e mantê-lo controlado, podemos usar o tempo como um contador no algoritmo do HOTP para obter a senha de uso único. Como um servidor e um telefone têm acesso ao tempo, nenhum deles precisa acompanhar o contador.</p><p>Além disso, para evitar o problema de fusos horários diferentes do servidor e do telefone, podemos usar um <a href="https://en.wikipedia.org/wiki/Unix_time">carimbo de data/hora Unix</a>, que é independente dos fusos horários.</p><p>No entanto, o tempo Unix é definido em segundos e, por isso, muda a cada segundo. Isso significa que a senha gerada mudará a cada segundo, o que não é bom. Em vez disso, precisamos adicionar um intervalo significativo antes de alterar a senha. Por exemplo, a aplicação do Google Authenticator altera o código a cada 30 segundos.</p><pre><code>contador = currentUnixTime / 30</code></pre><p>Resolvemos, assim, o problema do contador. Agora, precisamos resolver nosso terceiro problema: compartilhar a chave secreta com a aplicação do telefone. Aqui, um código QR pode nos ajudar.</p><h3 id="usando-um-qr-code"><strong>Usando um QR code</strong></h3><p>Embora possamos pedir aos usuários que digitem a chave secreta em sua aplicação de telefone diretamente, queremos tornar as chaves secretas bastante longas por razões de segurança. Pedir ao usuário para digitar uma string tão longa não seria uma experiência amigável.</p><p>Como a maioria dos smartphones é equipada com uma câmera, podemos usá-la e pedir ao usuário que escaneie um QR code para obter a chave secreta dele. Então, tudo o que precisamos fazer é converter a chave secreta no QR code e mostrá-la ao usuário.</p><p>Resolvemos os três problemas! Agora, você já sabe como funciona a TOTP. Vamos ver como implementá-la em uma aplicação.</p><h3 id="como-implementar-a-totp"><strong>Como implementar a TOTP</strong></h3><p>Existem algumas aplicações de telefone gratuitas disponíveis (como o Google Authenticator, Authy e outras) que podem gerar uma senha de uso único para o usuário. Portanto, na maioria dos casos, não é necessário criar sua própria aplicação de telefone.</p><p>Os pseudocódigos a seguir explicam uma maneira de implementar a autenticação de 2 fatores baseada em tempo em uma aplicação para a web.</p><pre><code>Quando o usuário solicita habilitar a autenticação de dois fatores

// Gere uma chave secreta de comprimento 20.
secretKey = generateSecretKey(20);
// Salve a chave secreta no banco de dados para esse usuário específico.
saveUserSecretKey(userId, secretKey);
// converta a chave secreta em uma imagem de QR code.
qrCode = convertToQrCode(secretKey);
// envie a imagem de QR code como resposta 
response(qrCode);
</code></pre><p>É solicitado ao usuário que escaneie esse QR code. Quando a aplicação do telefone escaneia o QR code, ela recebe a chave secreta do usuário. Usando essa chave secreta, a hora atual do Unix e o algoritmo do HOTP, a aplicação de telefone gerará e exibirá a senha.</p><p>Pedimos ao usuário que digite o código gerado após escanear o QR code. Isso é necessário, porque queremos ter certeza de que o usuário escaneou com êxito a imagem e que a aplicação do telefone gerou o código com êxito.</p><pre><code>O usuário digita o código exibido na aplicação.

// Obter a chave secreta do banco de dados.
secretKey = getSecretKeyOfUser(userId);
if (codeTypedByUser == getHOTP(secretKey, currentUnixTime / 30)) {
	enableTwoFactorAuthentication(userId);
}



</code></pre><p>Aqui, usamos o algoritmo DO HOTP no lado do servidor para obter a autenticação baseada na senha de uso único, na chave secreta e no tempo atual Unix. Se essa senha de uso único for a mesma digitada pelo usuário, podemos habilitar a autenticação de dois fatores para esse usuário.</p><p>Após cada operação de login, precisamos verificar se esse usuário específico tem a autenticação de 2 fatores habilitada. Se estiver habilitada, pedimos a senha única exibida na aplicação do telefone. Somente se esse código digitado estiver correto, o usuário será autenticado.</p><pre><code>O usuário digita o código exibido na aplicação do telefone para fazer o login

// Obtém a chave secreta no banco de dados.
secretKey = getSecretKeyOfUser(userId);
if (codeTypedByUser == getHOTP(secretKey, currentUnixTime)) {
	signIn(userId);
}</code></pre><h3 id="o-que-acontece-se-o-usu-rio-perder-o-c-digo"><strong>O que acontece se o usuário perder o código?</strong></h3><p>Há algumas maneiras de ajudar o usuário a recuperar o código. Normalmente, quando eles ativam a autenticação de 2 fatores, podemos mostrar a chave secreta para eles junto com o QR code e pedir que salvem esse código em algum lugar com segurança.</p><p>Aplicações como o Google Authenticator permitem que você gere a senha inserindo diretamente a chave secreta. Se o usuário perder o código, ele pode inserir essa chave secreta salva com segurança na aplicação do telefone para gerar a senha de uso único novamente.</p><h3 id="conclus-o"><strong>Conclusão</strong></h3><p>A autenticação de dois fatores está ganhando popularidade. Muitas aplicações da web já estão implementando-a para ter mais segurança.</p><p>Ao contrário do método baseado em SMS, o método da TOTP também não requer muito esforço extra. Portanto, vale a pena implementar esse recurso para qualquer aplicação.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como adicionar HTTPS ao seu site gratuitamente em 10 minutos e qual a importância disso ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Ayo Isaiah Em 2018, o Google anunciou que o Chrome passaria a marcar todas as páginas HTTP como "Não seguras" [https://security.googleblog.com/2018/02/a-secure-web-is-here-to-stay.html] em sua versão 68. > Nota da tradução: A versão mais recente do Chrome no momento desta tradução é a versão 114. A mudança na barra de ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-adicionar-https-ao-seu-site-gratuitamente-em-10-minutos-e-qual-a-importancia-disso/</link>
                <guid isPermaLink="false">64a4cae8d4e9dc0571a4080b</guid>
                
                    <category>
                        <![CDATA[ Segurança ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Marcelo Pena ]]>
                </dc:creator>
                <pubDate>Tue, 01 Aug 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/0_G1aejey06DjtUAcO_.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/free-https-c051ca570324/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to add HTTPS to your website for free in 10 minutes, and why you need to do this now more than…</a>
      </p><p>Escrito por: Ayo Isaiah</p><p>Em 2018, o Google anunciou que o Chrome passaria a marcar todas as <a href="https://security.googleblog.com/2018/02/a-secure-web-is-here-to-stay.html">páginas HTTP como "Não seguras"</a> em sua versão 68.</p><blockquote>Nota da tradução: A versão mais recente do Chrome no momento desta tradução é a versão 114.</blockquote><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/KJlpSH4gFVWnNr3gacsE9dQS1bnioHJHOdQK.png" class="kg-image" alt="KJlpSH4gFVWnNr3gacsE9dQS1bnioHJHOdQK" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/KJlpSH4gFVWnNr3gacsE9dQS1bnioHJHOdQK.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/KJlpSH4gFVWnNr3gacsE9dQS1bnioHJHOdQK.png 640w" width="640" height="231" loading="lazy"><figcaption>A mudança na barra de endereços do Chrome</figcaption></figure><p>Este foi o empurrão mais forte para direcionar a web para a criptografia por padrão e foi esperado há muito tempo.</p><p>Embora haja muitas evidências que mostram por que todos deveriam entrar na tendência do HTTPS, muitas pessoas ainda não enxergam o valor em oferecer seus sites de maneira segura.</p><p><em>"Por que eu preciso disso para um blog?"</em></p><p>Já escrevi sobre o <a href="https://freshman.tech/the-value-of-https/">valor do HTTPS</a> anteriormente (texto em inglês), mas apenas para reiterar:</p><ul><li>O HTTPS protege os usuários contra ataques <a href="https://freshman.tech/the-value-of-https/#https-prevents-man-in-the-middle-attacks"><em>Man-In-the-Middle</em></a><em> (texto em inglês)</em>.</li><li>O HTTPS é necessário para aproveitar muitos <a href="https://freshman.tech/the-value-of-https/#many-browser-features-are-exclusive-to-https">novos recursos dos navegadores</a> (texto em inglês), como os "Service Workers"</li><li>HTTPS afeta o <a href="https://freshman.tech/the-value-of-https/#https-can-provide-seo-benefits">SEO</a> (texto em inglês)</li></ul><p>Se você não estiver convencido, leia o <a href="https://doesmysiteneedhttps.com/">DoMysiteneedhttps.com</a> (texto em inglês) para obter a visão completa do porquê todo site da web deve ter segurança.</p><p>Se você ainda não se convenceu, saiba a vida está prestes a se tornar muito mais difícil para você.</p><p>Em um esforço para afastar os usuários de sites inseguros, os navegadores desencorajam sites inseguros em certos contextos.</p><p>O Chrome 56 iniciou essa tendência ao marcar as páginas com campos sensíveis de login como "Não seguro", enquanto o Chrome 62 estendeu esse aviso a todas as páginas HTTP que continham qualquer tipo de campo de entrada. Além disso, o aviso é exibido em todas as páginas HTTP no modo de navegação anônima, independentemente de conterem um campo de entrada ou não.</p><p>O Firefox também alerta os usuários quando tentam preencher um formulário de login inseguro.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/image-3-1.png" class="kg-image" alt="image-3-1" width="567" height="260" loading="lazy"></figure><p>O Chrome decidiu, a partir de 2018, colocar esse aviso em todas as páginas HTTP daqui para frente. O ícone ao lado do rótulo "Não seguro" mudou e o texto passou a ficar em vermelho para enfatizar ainda mais que as páginas HTTP não são confiáveis.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/image-4-1.png" class="kg-image" alt="image-4-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/image-4-1.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/image-4-1.png 750w" sizes="(min-width: 720px) 720px" width="750" height="363" loading="lazy"></figure><p>Para evitar que os usuários vejam este aviso em seu site, tudo o que você precisa é obter um certificado SSL válido. A boa notícia é que fazer isso não é tão difícil ou caro como costumava ser. Na verdade, vou mostrar como implantar HTTPS em seu site gratuitamente usando o <a href="https://www.cloudflare.com/">Cloudflare</a>. Não vai demorar muito.</p><h3 id="por-que-usar-o-cloudflare">Por que usar o Cloudflare?</h3><p>O CloudFlare pode ajudá-lo a proteger um certificado SSL gratuitamente, independentemente da infraestrutura do lado do servidor que você possui. Ele também funciona para sites hospedados em plataformas que não fornecem acesso ao servidor, como <a href="https://pages.github.com/">GitHub Pages</a>, <a href="https://ghost.org/">Ghost</a> e similares.</p><p>Você não precisa instalar nada nem escrever código. Isso o torna uma ótima opção para implantar HTTPS em seu site e o tempo de configuração não deve levar mais de 10 minutos.</p><p>Ele também fornece uma infinidade de outros benefícios em segurança e desempenho do seu site que não abordarei aqui. Falarei um pouco, no entanto, a respeito de como tudo funciona para que você tenha uma boa ideia de como ele é capaz de fazer todas essas coisas.</p><h3 id="como-funciona-o-cloudflare">Como funciona o Cloudflare</h3><p>O Cloudflare fica bem no meio do tráfego entre os visitantes do seu site e seu servidor. Os visitantes podem ser humanos comuns, rastreadores e bots (como bots de mecanismos de pesquisa) ou hackers. Ao agir como um intermediário entre seu servidor da web e os visitantes de seu site, o Cloudflare ajuda a filtrar todo o tráfego ilegítimo para que apenas as coisas boas passem.</p><p>Agora você deve estar se perguntando se tudo isso pode ter um efeito adverso na velocidade do seu site, mas é exatamente o contrário. O Cloudflare tem centros de dados em todo o mundo. Portanto, usará apenas o endpoint mais próximo do visitante, o que deve tornar seu site muito mais rápido do que antes.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/Lc-xzCU5Cw0u2x-u8zDwE3TFVbv-aUj-JjqK.png" class="kg-image" alt="Lc-xzCU5Cw0u2x-u8zDwE3TFVbv-aUj-JjqK" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/Lc-xzCU5Cw0u2x-u8zDwE3TFVbv-aUj-JjqK.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/Lc-xzCU5Cw0u2x-u8zDwE3TFVbv-aUj-JjqK.png 800w" sizes="(min-width: 720px) 720px" width="800" height="474" loading="lazy"><figcaption>Distribuição da rede global do Cloudflare</figcaption></figure><p>Agora que sabemos como o Cloudflare funciona, vamos dar uma olhada em como configurar um site em sua infraestrutura e como acessar o HTTPS gratuitamente. O foco, aqui, será nos recursos que o Cloudflare fornece gratuitamente, mas observe que os planos pagos também estão disponíveis com vários recursos extras.</p><h3 id="configurando-um-novo-site">Configurando um novo site</h3><p>Depois de se <a href="https://www.cloudflare.com/a/sign-up">cadastrar</a> no Cloudflare, a primeira coisa a fazer é adicionar um domínio e escanear [<em>scan</em>] os registros DNS. [disponível em português]</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/o1eN1nEZhtbcRaATWZ1p-nQUCwFBsrWEpalQ.png" class="kg-image" alt="o1eN1nEZhtbcRaATWZ1p-nQUCwFBsrWEpalQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/o1eN1nEZhtbcRaATWZ1p-nQUCwFBsrWEpalQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/o1eN1nEZhtbcRaATWZ1p-nQUCwFBsrWEpalQ.png 800w" sizes="(min-width: 720px) 720px" width="800" height="410" loading="lazy"></figure><p>Depois que a verificação for concluída, todos os registros DNS no domínio serão exibidos. Você pode escolher os subdomínios nos quais deseja habilitar o Cloudflare e fazer as modificações desejadas. Quando estiver pronto, clique em <strong><strong><em>Continue</em></strong></strong> para ir para a próxima etapa.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/XTjdrU156BPJ2Foa2rZuyNAjs53doMdCrJRN.png" class="kg-image" alt="XTjdrU156BPJ2Foa2rZuyNAjs53doMdCrJRN" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/XTjdrU156BPJ2Foa2rZuyNAjs53doMdCrJRN.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/XTjdrU156BPJ2Foa2rZuyNAjs53doMdCrJRN.png 800w" sizes="(min-width: 720px) 720px" width="800" height="420" loading="lazy"></figure><p>Selecione o plano gratuito (<em>Free Website</em>) e clique em <strong><strong><em>Continue</em></strong></strong>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/Nc7rVPCFdQ9LKxx-oEFCj-3zlrjrQqgNQvcO.png" class="kg-image" alt="Nc7rVPCFdQ9LKxx-oEFCj-3zlrjrQqgNQvcO" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/Nc7rVPCFdQ9LKxx-oEFCj-3zlrjrQqgNQvcO.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/Nc7rVPCFdQ9LKxx-oEFCj-3zlrjrQqgNQvcO.png 800w" sizes="(min-width: 720px) 720px" width="800" height="541" loading="lazy"></figure><p>Em seguida, você precisará alterar os <em>Nameservers</em> em seu provedor de registro de domínio para os fornecidos pelo Cloudflare. O processo para fazer isso em cada provedor de registro de domínio é um pouco diferente. Portanto, verifique com o seu provedor.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/xnHu2o4MJrpckhGOvUsDcUoGz0UuujOvxDsU.png" class="kg-image" alt="xnHu2o4MJrpckhGOvUsDcUoGz0UuujOvxDsU" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/xnHu2o4MJrpckhGOvUsDcUoGz0UuujOvxDsU.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/xnHu2o4MJrpckhGOvUsDcUoGz0UuujOvxDsU.png 800w" sizes="(min-width: 720px) 720px" width="800" height="412" loading="lazy"></figure><p>Veja como fica no provedor <a href="http://namecheap.com/" rel="noopener">Namecheap</a>:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/-C7vA1eZcIpP3B5vcq-qYK1eC1Y8Khq8PI9H.png" class="kg-image" alt="-C7vA1eZcIpP3B5vcq-qYK1eC1Y8Khq8PI9H" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/-C7vA1eZcIpP3B5vcq-qYK1eC1Y8Khq8PI9H.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/-C7vA1eZcIpP3B5vcq-qYK1eC1Y8Khq8PI9H.png 786w" sizes="(min-width: 720px) 720px" width="786" height="161" loading="lazy"><figcaption>Alterando nameservers no provedor Namecheap</figcaption></figure><p>Agora, você deve esperar que as alterações do <em>nameserver </em>terminem de se propagar. Clique em <em><strong>Recheck Nameservers</strong></em> depois de um tempo para ver se seu site agora está ativo no Cloudflare. Essa é a parte mais demorada da configuração e pode levar até 24 horas, mas, na minha experiência, levou menos de 5 minutos.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/9oHlGNn4TMApCJw1v2GWyQ9ulTA-egOhF6Ew.png" class="kg-image" alt="9oHlGNn4TMApCJw1v2GWyQ9ulTA-egOhF6Ew" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/9oHlGNn4TMApCJw1v2GWyQ9ulTA-egOhF6Ew.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/9oHlGNn4TMApCJw1v2GWyQ9ulTA-egOhF6Ew.png 800w" sizes="(min-width: 720px) 720px" width="800" height="436" loading="lazy"></figure><p>Depois que as atualizações do nameserver forem validadas pela Cloudflare, seu site se tornará ativo no serviço.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/1AgkTO0uBz8lv0fAdrJhGXz8Rg5nkPfaZDVO.png" class="kg-image" alt="1AgkTO0uBz8lv0fAdrJhGXz8Rg5nkPfaZDVO" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/1AgkTO0uBz8lv0fAdrJhGXz8Rg5nkPfaZDVO.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/1AgkTO0uBz8lv0fAdrJhGXz8Rg5nkPfaZDVO.png 800w" sizes="(min-width: 720px) 720px" width="800" height="151" loading="lazy"></figure><p>Se você quiser ter certeza absoluta de que suas configurações de DNS se propagaram em todos os lugares, o <a href="http://whatsmydns.net/">What's My DNS</a> fornece uma maneira de verificar qual endereço IP seu domínio resolve em locais diferentes.</p><p>Você também pode usar <code>dig</code> ou <code>nslookup</code> na linha de comando para verificar a configuração de DNS do seu domínio.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/WAC1LFbxuDtbk-hXxrqot4vUKIxl6b3yFUi9.png" class="kg-image" alt="WAC1LFbxuDtbk-hXxrqot4vUKIxl6b3yFUi9" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/WAC1LFbxuDtbk-hXxrqot4vUKIxl6b3yFUi9.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/WAC1LFbxuDtbk-hXxrqot4vUKIxl6b3yFUi9.png 800w" sizes="(min-width: 720px) 720px" width="800" height="570" loading="lazy"><figcaption>Na seção ANSWER SECTION, você verá para qual endereço IP seu domínio resolve</figcaption></figure><p>Assim, você pode ter certeza de que todo o tráfego que vai para o seu domínio agora está sendo roteado pelo Cloudflare.</p><p>Antes de começar a configurar o Cloudflare, certifique-se de que seu navegador não esteja usando os registros DNS antigos de seu cache. No Chrome e no Firefox, você pode fazer isso limpando o histórico do navegador.</p><h3 id="obtendo-ssl-gratuitamente"><strong>Obtendo SSL gratuitamente</strong></h3><p>O SSL ainda é um serviço <em>premium</em> e muitas Autoridades Certificadoras cobram quantias significativas antes de emitir um certificado SSL. Não é algo que você possa obter de graça em algum lugar, mas isso está mudando rapidamente na indústria.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/kIkCSgOncnKEkE5LClz1UeV0dVDP4i8CFZPw.png" class="kg-image" alt="kIkCSgOncnKEkE5LClz1UeV0dVDP4i8CFZPw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/kIkCSgOncnKEkE5LClz1UeV0dVDP4i8CFZPw.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/kIkCSgOncnKEkE5LClz1UeV0dVDP4i8CFZPw.png 800w" sizes="(min-width: 720px) 720px" width="800" height="348" loading="lazy"><figcaption>A Comodo cobra US$ 99,95/ano por um certificado SSL</figcaption></figure><p>Agora que você tem o Cloudflare no meio do tráfego da web, você deve obter o SSL em seu domínio automaticamente. Pode levar até 24 horas para que o certificado fique ativo, mas, pela minha experiência, não demora muito.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/cZyriRiq6Ao4k48mLCYMjtaLR-aHLa824hXj.png" class="kg-image" alt="cZyriRiq6Ao4k48mLCYMjtaLR-aHLa824hXj" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/cZyriRiq6Ao4k48mLCYMjtaLR-aHLa824hXj.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/cZyriRiq6Ao4k48mLCYMjtaLR-aHLa824hXj.png 800w" sizes="(min-width: 720px) 720px" width="800" height="207" loading="lazy"><figcaption>Você pode verificar se o certificado do seu site está ativo nas configurações de criptografia.</figcaption></figure><p>Depois que o certificado se tornar ativo, carregue seu site em um navegador. Você deve ver o site servido por HTTPS e um belo cadeado verde na barra de endereços.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/7ehfhEpKBWEG71hCcQY147j1bBiOQ2Q4YLSF.png" class="kg-image" alt="7ehfhEpKBWEG71hCcQY147j1bBiOQ2Q4YLSF" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/7ehfhEpKBWEG71hCcQY147j1bBiOQ2Q4YLSF.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/7ehfhEpKBWEG71hCcQY147j1bBiOQ2Q4YLSF.png 800w" sizes="(min-width: 720px) 720px" width="800" height="312" loading="lazy"></figure><p>Se você visualizar mais informações sobre o certificado, verá a autoridade de certificação que o emitiu (a Comodo, no meu caso) e a data de validade. Uma das grandes vantagens do Cloudflare é que a renovação do certificado é feita automaticamente para você. Assim, não é preciso se preocupar.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/E6A0jelflOxpON3l4OG-p16p7Qy8udwHqtps.png" class="kg-image" alt="E6A0jelflOxpON3l4OG-p16p7Qy8udwHqtps" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/E6A0jelflOxpON3l4OG-p16p7Qy8udwHqtps.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/E6A0jelflOxpON3l4OG-p16p7Qy8udwHqtps.png 684w" width="684" height="583" loading="lazy"></figure><h3 id="diferen-a-entre-ssls-flexible-full-e-full-strict-"><strong>Diferença entre SSLs Flexible, Full e Full (Strict)</strong></h3><p>O Cloudflare torna muito fácil obter o SSL em seu site gratuitamente sem configurar nada, mas nem sempre é o mesmo que servir seu site por SSL diretamente da origem.</p><p>Existem três implementações do SSL do Cloudflare. O primeiro, que você obtém por padrão, é o SSL Flexible. Nesse caso, o tráfego é criptografado entre os usuários do seu site e o Cloudflare, mas essa criptografia não chega até o servidor de origem. O Cloudflare ainda se comunica com seu servidor por HTTP simples.</p><p>Isso significa que qualquer "Man-In-The-Middle" (como provedores de rede) entre o Cloudflare e seu servidor pode ver o tráfego. Se você coletar informações confidenciais em seu site, evite usar essa opção.</p><p>Para ter criptografia até o servidor de origem, você precisa usar a implementação Full ou Full (Strict). O primeiro exige que você instale um certificado válido em seu servidor, mas a autenticidade do certificado não será verificada para que você possa obter um certificado autoassinado. Por outro lado, a implementação Full (Strict) requer que você instale um certificado SSL válido que tenha sido assinado por uma Autoridade de Certificação confiável.</p><p>Se você não deseja comprar SSL de empresas como a Comodo, pode obter certificados Origin CA gratuitos do Cloudflare, que podem ser usados com as opções Full ou Full(Strict), pois são confiáveis para o Cloudflare. Lembre-se, porém, de que esses certificados são confiáveis apenas para o Cloudflare. Deste modo, eles pararão de funcionar se você decidir retirar seu site da infraestrutura do Cloudflare.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/N2mQFmlgiPlsshjqQml8DLEYBpCfSAwW0049.png" class="kg-image" alt="N2mQFmlgiPlsshjqQml8DLEYBpCfSAwW0049" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/N2mQFmlgiPlsshjqQml8DLEYBpCfSAwW0049.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/N2mQFmlgiPlsshjqQml8DLEYBpCfSAwW0049.png 800w" sizes="(min-width: 720px) 720px" width="800" height="208" loading="lazy"></figure><p>Se você não controlar seu ambiente de servidor (por exemplo, se seu site estiver hospedado no GitHub Pages ou plataformas semelhantes), não poderá usar as implementações Full ou Full (Strict), o que significa que, mesmo que seus usuários vejam HTTPS na barra de endereço, o tráfego não será criptografado até o servidor de origem.</p><p>É, contudo, uma grande melhoria em comparação a ter nenhum HTTPS, porque protegerá seus usuários contra "Man-In-The-Middle" no lado do <em>client</em>.</p><h3 id="fortalecer-a-implementa-o-de-ssl"><strong>Fortalecer a implementação de SSL</strong></h3><p>Não importa por qual implementação SSL você opte, existem maneiras de fortalecê-la para garantir que os usuários nunca acessem seu site por HTTP inseguro. O <a href="https://www.ssllabs.com/ssltest/">Qualys SSL Labs</a> é uma ferramenta que ajuda você a executar um teste em sua configuração SSL para ver se há espaço para melhorias.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/f9yR7vx-50TyrX2lWQjMTOiFBwc2oUzoUr3W.png" class="kg-image" alt="f9yR7vx-50TyrX2lWQjMTOiFBwc2oUzoUr3W" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/f9yR7vx-50TyrX2lWQjMTOiFBwc2oUzoUr3W.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/f9yR7vx-50TyrX2lWQjMTOiFBwc2oUzoUr3W.png 800w" sizes="(min-width: 720px) 720px" width="800" height="460" loading="lazy"></figure><p>Mesmo que eu tenha uma nota A em meu domínio, se você detalhar os resultados, verá que definitivamente há espaço para melhorias nos lados da Key Exchange (Troca de Chave) e da Cipher Strength (Força do Ciframento).</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/EflHwo97oxMhSWGIz6Gu3Xkbq32PwDsBMUl-.png" class="kg-image" alt="EflHwo97oxMhSWGIz6Gu3Xkbq32PwDsBMUl-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/EflHwo97oxMhSWGIz6Gu3Xkbq32PwDsBMUl-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/EflHwo97oxMhSWGIz6Gu3Xkbq32PwDsBMUl-.png 800w" sizes="(min-width: 720px) 720px" width="800" height="334" loading="lazy"></figure><p>Vamos dar uma olhada em algumas coisas que podemos fazer no Cloudflare para fortalecer nosso SSL e obter classificações ainda mais altas.</p><h4 id="for-ar-https-em-todos-os-lugares"><strong>Forçar HTTPS em todos os lugares</strong></h4><p>Depois de usar o HTTPS, você definitivamente desejará impedir que os usuários acessem seu site por meio de uma conexão insegura. Isso pode ser feito no Cloudflare redirecionando todo o tráfego HTTP para HTTPS com um redirecionamento 301.</p><p>Nas configurações de criptografia, encontre a opção <strong><strong>Always use HTTPS</strong></strong> (sempre usa HTTPS) e ative-a.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/x1VBeW7nD6Hitnfm6QHowq2bhGAhDXZEsOHw.png" class="kg-image" alt="x1VBeW7nD6Hitnfm6QHowq2bhGAhDXZEsOHw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/x1VBeW7nD6Hitnfm6QHowq2bhGAhDXZEsOHw.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/x1VBeW7nD6Hitnfm6QHowq2bhGAhDXZEsOHw.png 800w" sizes="(min-width: 720px) 720px" width="800" height="140" loading="lazy"></figure><h4 id="habilitar-a-seguran-a-estrita-de-transporte-http-hsts-">Habilitar a segurança estrita de transporte HTTP <strong>(HSTS</strong>)</h4><p><a href="https://freshman.tech/securing-your-website/#http-strict-transport-security-hsts">No passado, escrevi sobre como o HSTS fortalece o SSL</a> do seu site (texto em inglês), mas vamos revisar brevemente.</p><p>O problema ao redirecionar o tráfego HTTP para HTTPS usando apenas um redirecionamento 301 é que a solicitação inicial insegura ainda é enviada pela rede, o que significa que pode ser lida por qualquer pessoa com acesso ao tráfego.</p><p>O HSTS é um cabeçalho de resposta que resolve esse problema, informando ao navegador que ele não pode fazer uma solicitação insegura a um site por um período de tempo especificado.</p><p>Esta é a aparência do cabeçalho:</p><pre><code>strict-transport-security: max-age=31536000</code></pre><p><br>Assim que o navegador receber esse cabeçalho, ele não fará uma solicitação insegura ao seu site pelos próximos 31.536.000 segundos (equivalente a um ano). Em vez disso, todas as solicitações HTTP serão atualizadas internamente para HTTPS antes de serem enviadas pela rede.</p><p>Se você deseja impedir que todos os subdomínios sejam acessados por HTTP, precisará usar a diretiva <strong>includeSubdomains</strong>. Você também pode adicionar a diretiva <strong>preload</strong> para permitir que os fabricantes de navegadores incluam seu site diretamente no navegador como sendo apenas HTTPS.</p><pre><code>strict-transport-security: max-age=31536000; includeSubdomains; preload</code></pre><p><br>Uma vez que você tenha ativado o HSTS em seu domínio, pode ter certeza de que, uma vez que alguém tenha carregado seu site via HTTPS, eles só poderão acessá-lo através do esquema seguro dali em diante.</p><p>Portanto, antes de habilitar o HSTS em seu site, certifique-se de ter confiança de que todo o seu tráfego será servido via HTTPS. Caso contrário, você enfrentará problemas.</p><p>Para habilitar isso no Cloudflare, vá para as configurações de <strong>Crypto</strong> e role para baixo até a seção <strong>HTTP Strict Transport Security (HSTS)</strong>. Clique em <strong><strong>Change HSTS Settings</strong></strong> [Alterar configurações de HSTS], habilite todas as opções relevantes e clique em <strong>Save</strong>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/duTVMCLbBXZtlp5QoKLu4gBuzz-qnGRH3CRS.png" class="kg-image" alt="duTVMCLbBXZtlp5QoKLu4gBuzz-qnGRH3CRS" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/duTVMCLbBXZtlp5QoKLu4gBuzz-qnGRH3CRS.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/duTVMCLbBXZtlp5QoKLu4gBuzz-qnGRH3CRS.png 607w" width="607" height="945" loading="lazy"></figure><p>Caso esteja se perguntando, o suporte dos navegadores para o HSTS é bastante bom.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/kvk9x7Ffgtm8Hj7uJG3SNbqcVvhv6bdv0Sxy.png" class="kg-image" alt="kvk9x7Ffgtm8Hj7uJG3SNbqcVvhv6bdv0Sxy" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/kvk9x7Ffgtm8Hj7uJG3SNbqcVvhv6bdv0Sxy.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/kvk9x7Ffgtm8Hj7uJG3SNbqcVvhv6bdv0Sxy.png 800w" sizes="(min-width: 720px) 720px" width="800" height="411" loading="lazy"></figure><h4 id="corrigir-refer-ncias-ao-esquema-inseguro"><strong>Corrigir referências ao esquema inseguro</strong></h4><p><br>Se você incorporar um recurso passivo (como uma imagem) de maneira insegura em uma página segura, o navegador ainda vai carregá-lo normalmente. A única diferença é que o cadeado verde é removido da barra de endereços. Você pode ver um exemplo desse erro <a href="https://mixed.badssl.com/">aqui</a>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/PztuGkSktiMG9zRjN4Dc1Haa9ZU4ExWAkcvG.png" class="kg-image" alt="PztuGkSktiMG9zRjN4Dc1Haa9ZU4ExWAkcvG" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/PztuGkSktiMG9zRjN4Dc1Haa9ZU4ExWAkcvG.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/PztuGkSktiMG9zRjN4Dc1Haa9ZU4ExWAkcvG.png 681w" width="681" height="349" loading="lazy"></figure><p>Se você verificar o console do navegador, verá algumas mensagens de aviso ou erros que apontam para o recurso que foi incorporado de maneira insegura. Nesse caso, é:</p><pre><code>&lt;img class="mixed" src="http://mixed.badssl.com/image.jpg" alt="HTTP image"&gt;</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/WD4db17NSC2rNZo4gXdamnM6A4q54CE0Y0kQ.png" class="kg-image" alt="WD4db17NSC2rNZo4gXdamnM6A4q54CE0Y0kQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/WD4db17NSC2rNZo4gXdamnM6A4q54CE0Y0kQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/WD4db17NSC2rNZo4gXdamnM6A4q54CE0Y0kQ.png 800w" sizes="(min-width: 720px) 720px" width="800" height="272" loading="lazy"></figure><p>Para corrigir isso, basta alterar o esquema para HTTPS e tudo ficará bem novamente.</p><pre><code>&lt;img class="mixed" src="https://mixed.badssl.com/image.jpg" alt="HTTP image"&gt;</code></pre><p>Se você tem muito conteúdo em seu site incorporado de modo inseguro, encontrar e corrigir cada um pode ser bastante tedioso. O Cloudflare pode ajudar novamente aqui com o recurso <a href="https://support.cloudflare.com/hc/en-us/articles/227227647-How-do-I-use-Automatic-HTTPS-Rewrites-">Automatic HTTPS Rewrites</a>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/TInVTocyWO2EfauqD6OfOpmHWb0x65C5-cq3.png" class="kg-image" alt="TInVTocyWO2EfauqD6OfOpmHWb0x65C5-cq3" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/TInVTocyWO2EfauqD6OfOpmHWb0x65C5-cq3.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/TInVTocyWO2EfauqD6OfOpmHWb0x65C5-cq3.png 800w" sizes="(min-width: 720px) 720px" width="800" height="140" loading="lazy"></figure><p>Para ter uma certeza absoluta de que nenhum conteúdo do seu site será servido de modo inseguro, considere implementar uma <a href="https://freshman.tech/securing-your-website/#content-security-policy-csp">Política de Segurança de Conteúdo</a> (Content Security Policy, CSP – texto em inglês) em seu site.</p><p>Agora, vamos ver como as alterações acima afetaram nosso relatório do SSL Labs. Rodei o teste novamente em meu domínio e agora obtemos uma classificação A+.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/Q0jdFp2spaP7pWbehBEXBQJMFblx4K3YPKIT.png" class="kg-image" alt="Q0jdFp2spaP7pWbehBEXBQJMFblx4K3YPKIT" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/Q0jdFp2spaP7pWbehBEXBQJMFblx4K3YPKIT.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/Q0jdFp2spaP7pWbehBEXBQJMFblx4K3YPKIT.png 800w" sizes="(min-width: 720px) 720px" width="800" height="379" loading="lazy"></figure><p>Se você verificar as classificações individuais no gráfico, nada mudou, mas ainda assim obtemos uma implementação de SSL muito segura gratuitamente e em apenas alguns minutos.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/07/L9vbROCIfrsio5SwUybP-eTil0YGuclRgUzy.png" class="kg-image" alt="L9vbROCIfrsio5SwUybP-eTil0YGuclRgUzy" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/07/L9vbROCIfrsio5SwUybP-eTil0YGuclRgUzy.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/07/L9vbROCIfrsio5SwUybP-eTil0YGuclRgUzy.png 800w" sizes="(min-width: 720px) 720px" width="800" height="368" loading="lazy"></figure><h3 id="alternativas-ao-cloudflare-para-ssl-gratuito">Alternativas ao Cloudflare para SSL gratuito</h3><p>Se você preferir não usar o Cloudflare por algum motivo, existem outras maneiras de tornar o seu site acessível via HTTPS de maneira gratuita. Aqui estão duas opções que você pode experimentar:</p><h3 id="let-s-encrypt">Let’s Encrypt</h3><p>Se você tiver controle sobre o seu servidor, pode implantar rapidamente o HTTPS no seu site usando o <a href="https://letsencrypt.org/">Let's Encrypt</a>. Eles oferecem certificados SSL gratuitos com validade de três meses e que podem ser renovados automaticamente.</p><p>Mesmo se você não tiver acesso ao servidor, verifique com o seu provedor de hospedagem. Alguns hosts permitem o uso do Let's Encrypt SSL sem fornecer acesso ao <em>shell </em>(linha de comando).</p><h3 id="gerenciador-de-certificados-amazon-aws">Gerenciador de Certificados Amazon AWS</h3><p>A <a href="https://aws.amazon.com/certificate-manager/">Amazon</a> também emite e renova automaticamente certificados SSL para clientes em sua infraestrutura da Amazon Web Services (AWS). Desse modo, você pode configurar e esquecer o HTTPS em seu site se estiver usando recursos da AWS, como o Cloudfront.</p><p>Independentemente de como você implementa o HTTPS em seu site, o mais importante é garantir que você o configure o mais rápido possível para que seus usuários obtenham os benefícios de segurança que ele oferece e para não perder várias funcionalidades interessantes nos navegadores que ajudam a criar experiências melhores na web.</p><p>Se você gostou deste artigo, compartilhe com outras pessoas que possam se beneficiar da leitura. A propósito, confira o blog do autor em <a href="https://freshman.tech/">freshman.tech</a> para ver mais artigos sobre desenvolvimento para a web. Obrigado pela leitura.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como escrever código fonte seguro para software proprietário ]]>
                </title>
                <description>
                    <![CDATA[ É o trabalho dos desenvolvedores de software trabalhando em software proprietário criar programas que forneçam as funcionalidades de que nossos clientes precisam. Além disso, também é nosso trabalho criar esses programas de maneira que sejam fáceis de usar, manter e atualizar. Desenvolvedores de software proprietário, contudo, possuem outra responsabilidade muito ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-escrever-codigo-fonte-seguro-para-software-proprietario/</link>
                <guid isPermaLink="false">62dab5fcfea2f10707d66c75</guid>
                
                    <category>
                        <![CDATA[ Segurança ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Thiago Costa Barbosa ]]>
                </dc:creator>
                <pubDate>Mon, 22 Aug 2022 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/07/software-development-code-security-1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-write-secure-source-code-for-proprietary-software/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Write Secure Source Code for Proprietary Software</a>
      </p><p>É o trabalho dos desenvolvedores de software trabalhando em software proprietário criar programas que forneçam as funcionalidades de que nossos clientes precisam. Além disso, também é nosso trabalho criar esses programas de maneira que sejam fáceis de usar, manter e atualizar.</p><p>Desenvolvedores de software proprietário, contudo, possuem outra responsabilidade muito mais importante. Temos que criar um software que seja seguro e não coloque em risco os dados do usuário ou os sistemas de nossos clientes.</p><p>A chave para fazer isso é fortalecer nosso código-fonte e reforçar os processos de desenvolvimento para evitar que agentes mal-intencionados injetem qualquer coisa prejudicial enquanto trabalhamos.</p><p>Esses tipos de esforços são cruciais, pois o código-fonte é o componente básico de um programa de computador. Por isso, precisamos protegê-lo de quaisquer alterações não autorizadas.</p><p>Este artigo explicará o motivo de a proteção do código-fonte ser tão importante para projetos de software proprietário. Ele também dará aos programadores algumas dicas sobre como proteger seu código-fonte, bem como algumas orientações sobre como protegê-lo de alterações externas durante o processo de desenvolvimento.</p><h2 id="por-que-importante-proteger-seu-c-digo-fonte"><strong>Por que é importante proteger seu código-fonte?</strong></h2><p>O uso de código aberto no desenvolvimento de software proprietário cresce cada dia mais. Na última contagem, estima-se que até <a href="https://www.perforce.com/blog/vcs/using-open-source-code-in-proprietary-software">96% dos softwares proprietários</a> (texto em inglês) contenham algum código-fonte aberto. Os desenvolvedores usam esse tipo de código para acelerar o processo de desenvolvimento e evitar trabalho desnecessário. Do ponto de vista da segurança, isso é uma coisa boa.</p><p>De acordo com a maioria dos especialistas em segurança, é mais provável que um código aberto seja seguro e permaneça seguro devido ao <a href="https://www.itprotoday.com/linux/why-you-should-trust-open-source-software-security">grande número de olhos que o revisam</a> ao longo do tempo (texto em inglês).</p><p>Quando, no entanto, um desenvolvedor começa a juntar código-fonte aberto e a adicionar suas próprias personalizações para criar algo proprietário, toda essa segurança se encerra. A partir desse ponto, cabe ao desenvolvedor evitar adicionar quaisquer vulnerabilidades que possam levar a uma violação de dados ou a um golpe.</p><p>Dependendo da natureza do software em questão, há uma variedade de dados que podem estar em risco no seu software quando estiver concluído, incluindo:</p><ul><li>Senhas</li><li>Chaves de criptografia</li><li>Endereços IP</li><li>Tokens de autenticação e muito mais.</li></ul><p>Isso torna o vazamento de código-fonte uma das principais ameaças para qualquer desenvolvedor de software proprietário. Essa ameaça não é apenas teórica. Houve vários casos de <a href="https://www.wired.com/story/source-code-leak-dangers/">vazamentos de código proprietário</a> (texto em inglês) nos últimos anos. Em muitos desses casos, as consequências finais ainda estão longe de serem claras.</p><p>Em um dos casos, porém – o vazamento de todo o repositório do código-fonte do Twitch – as consequências foram muito graves. De acordo com uma análise dos dados, os hackers obtiveram acesso a <a href="https://blog.gitguardian.com/security-threats-from-the-twitch-leak/">quase 7.000 segredos</a> (texto em inglês). Esses segredos, que consistem nos tipos de dados listados acima, podem dar aos invasores acesso catastrófico à plataforma.</p><h2 id="as-principais-amea-as-seguran-a-do-c-digo-fonte"><strong>As principais ameaças à segurança do código-fonte</strong></h2><p>Existem duas categorias principais de ameaças à segurança de um código-fonte:</p><h3 id="amea-as-internas"><strong>Ameaças internas</strong></h3><p>O código-fonte fica à mercê dos desenvolvedores e de qualquer pessoa que tenha acesso a ele. Isso significa que limitar o acesso ao seu código-fonte e estabelecer diretrizes de segurança para aqueles que têm acesso é vital para aumentar a segurança.</p><p>Também é importante perceber que os agentes de ameaças internas nem sempre são mal-intencionados. Muitas vezes, as ameaças internas vêm de erros ou descuidos dos próprios funcionários.</p><p>Para exemplificar, um programador pode compartilhar partes do código-fonte em um fórum on-line procurando uma resposta que possa resolver um problema – fazendo com que o código acabe caindo em mãos erradas.</p><h3 id="amea-as-externas"><strong>Ameaças externas</strong></h3><p>As ameaças externas vêm de fora de sua equipe de desenvolvimento. Elas podem vir de concorrentes que desejam usar o código para melhorar seu próprio código. Também podem vir de hackers, que tentarão vender seu código-fonte ou que o vasculharão em busca de vulnerabilidades.</p><p>O ponto é que, não importando se um vazamento vem de ameaças internas ou externas, ele pode ter consequências terríveis. Vazamentos de código-fonte podem levar a ataques adicionais, expondo grandes quantidades de dados confidenciais.</p><p>Vazamentos de código-fonte também podem levar a perdas financeiras, dando vantagem aos concorrentes. Seus clientes pensarão duas vezes antes de negociar com um desenvolvedor que expôs dados valiosos de clientes no passado.</p><p>As regulamentações em torno da segurança também estão se tornando mais rígidas. Seus clientes podem enfrentar multas pesadas se não protegerem esses dados - e responsabilizarão você por isso.</p><h2 id="como-proteger-seu-c-digo-fonte"><strong>Como proteger seu código-fonte</strong></h2><p>Agora que você sabe a importância de proteger o código-fonte, vejamos algumas formas de reforçar sua segurança:</p><h3 id="implementar-pr-ticas-de-desenvolvimento-seguro"><strong>Implementar práticas de desenvolvimento seguro</strong></h3><p>A segurança do seu código-fonte começa já no início do ciclo de desenvolvimento. Quanto mais cedo você detectar falhas de segurança no código, melhor.</p><p>Você deve definir um conjunto claro de práticas de programação, regras e procedimentos logo no início de cada processo. Isso inclui treinar sua equipe de desenvolvimento nas melhores práticas de segurança e fornecer a documentação dos padrões de segurança que eles precisam seguir durante o projeto.</p><p>O Open Web Application Security Project (OWASP) oferece <a href="https://owasp.org/www-pdf-archive/OWASP_SCP_Quick_Reference_Guide_v2.pdf">um guia de referência abrangente</a> (texto em inglês), sendo um ótimo ponto de partida. Embora seja adaptado para aplicações para a web, seus conceitos são amplamente aplicáveis ​​a todos os tipos de trabalho em desenvolvimento de software.</p><p>Seus pontos mais importantes incluem:</p><ul><li>Conduzir toda a validação e codificação de dados em um único sistema confiável</li><li>Exigir autenticação padronizada e testada para acesso aos recursos do projeto</li><li>Tomar medidas para reduzir a complexidade do código sempre que for possível, para facilitar a auditoria de segurança</li><li>Projetar e criptografar os repositórios de código relacionados ao projeto</li><li>Tornar protegida e segura a construção das etapas de desenvolvimento.</li></ul><p>Ao manter seu código e processo de desenvolvimento alinhados com as melhores práticas de segurança estabelecidas no mercado, como as descritas acima, você pode reduzir drasticamente as chances de seu código ser comprometido ainda durante o desenvolvimento ou depois que estiver publicado. Como dizem, é melhor prevenir do que remediar.</p><p>Tão logo o código esteja escrito, você também deve usar <a href="https://www.nist.gov/itl/ssd/software-quality-group/source-code-security-analyzers">ferramentas de análise de segurança</a> (texto em inglês) a fim de identificar falhas de segurança e outros riscos. Essas ferramentas de análise de código também farão varreduras para garantir a conformidade com as melhores práticas de segurança e padrões de escrita de código. Essas ferramentas ajudarão você a identificar riscos e corrigir problemas básicos antes que seja tarde demais.</p><p>Algumas das ferramentas mais usadas para isso são:</p><ul><li><a href="https://www.appsonar.com/">Appsonar</a> – automatiza o teste de práticas recomendadas em mais de 15 idiomas e verifica vulnerabilidades de código conhecidas</li><li><a href="https://www.codiga.io/">Codiga</a> – verifica as melhores práticas, segurança, proteção e problemas de design em 18 linguagens e frameworks</li><li><a href="https://www.mend.io/sast/">Mend SAST</a> – fornece verificação automatizada de vulnerabilidades e a correção automática de vulnerabilidades conhecidas</li></ul><h3 id="criptografar-e-monitorar-dados-em-tr-nsito"><strong>Criptografar e monitorar </strong>dados em trânsito</h3><p>A criptografia de dados é crucial para a proteção do seu código-fonte. Dados em trânsito<strong> </strong>são particularmente vulneráveis. Por isso, é uma boa ideia encontrar formas de manter seu código seguro à medida que ele passa entre os membros da equipe de desenvolvimento.</p><p>Um bom lugar para começar é usar uma plataforma de compartilhamento de código ou colaboração que inclua criptografia de ponta a ponta.</p><p>Há uma variedade de soluções destinadas a desenvolvedores de software que incluem criptografia. Algumas das opções mais usadas são <a href="https://cryptpad.fr/">CryptPad</a>, <a href="https://www.codetogether.com/pro/">CodeTogether</a> e <a href="https://visualstudio.microsoft.com/services/live-share/">Visual Studio Live Share</a>. Dependendo da natureza do projeto, um deles certamente será uma adição valiosa ao <em>toolkit</em> (kit de ferramentas, em português) de sua equipe.</p><p>Se uma plataforma de compartilhamento de código for um exagero naquilo que você está trabalhando, você pode usar uma <a href="https://geekflare.com/secure-file-sharing/">plataforma de compartilhamento de arquivos criptografados</a> (texto em inglês) e usá-la para trocar trechos de código. E se você estiver trabalhando com uma equipe que não está toda em um único escritório, é uma boa ideia investir em uma VPN. A VPN vai mascarar seu endereço IP e criptografar todas as transferências de dados entre suas redes.</p><p>Saiba, porém, que as VPNs geralmente diminuem a velocidade da sua internet. Portanto, você deve fazer sua pesquisa antes de comprar uma para você e sua equipe. Algumas VPNs são <a href="https://nordvpn.com/features/fastest-vpn/">muito mais rápidas</a> (texto em inglês) do que outras e só perdem sua velocidade de forma incremental. Então, escolha com sabedoria ou você pode prejudicar a produtividade de sua equipe.</p><h3 id="controle-de-acesso"><strong>Controle de acesso</strong></h3><p>As únicas pessoas que devem ter acesso aos repositórios de código-fonte são os desenvolvedores e a equipe de controle de qualidade. Não há razão para dar acesso a qualquer pessoa que não esteja envolvida na prática com a escrita de código.</p><p>Ao limitar o número de pessoas com acesso, você pode diminuir significativamente o risco de ameaças internas. Proteja seu código com autenticação e controle de acesso de autorizações.</p><h3 id="realizar-revis-es-de-seguran-a-do-c-digo"><strong>Realizar revisões de segurança do código</strong></h3><p>As revisões de segurança do código são uma parte crítica do <a href="https://www.freecodecamp.org/news/get-a-basic-understanding-of-the-life-cycles-of-software-development/">SDLC (Software Development Lifecycle)</a> – texto em inglês. Essas revisões são particularmente importantes para a segurança, pois permitem que os membros da equipe identifiquem e resolvam quaisquer vulnerabilidades de segurança em potencial antes que o código seja publicado. Em muitos setores com os quais você pode vir a trabalhar, elas são obrigatórias para a conformidade regulatória.</p><p>É importante, entretanto, diferenciar revisão do código de revisão de segurança do código. Esta última deve se concentrar estritamente em "proteger" o código em termos de segurança. Revisões de código se concentram principalmente na correção de possíveis bugs ou falhas. Isso acontece com mais frequência enquanto sua base de código está em desenvolvimento pesado. Já as revisões de segurança do código devem acontecer principalmente quando seu código estiver próximo de um lançamento.</p><p>Nesse estágio, é uma boa ideia aplicar algumas técnicas abrangentes de proteção para dificultar o acesso de hackers ao software por meio de análise ou em tempo de execução.</p><p>Algumas técnicas incluem (textos em inglês):</p><ul><li><a href="https://www.freecodecamp.org/news/make-your-code-secure-with-obfuscation/">Ofuscação de código</a></li><li><a href="https://www.pelock.com/products/string-encrypt">Criptografia de string</a></li><li><a href="https://books.nowsecure.com/secure-mobile-development/en/coding-practices/anti-tamper-techniques.html">Detecção e resposta de adulterações em tempo de execução</a></li><li><a href="https://resources.infosecinstitute.com/topic/anti-debugging/">Medidas antidepuração</a></li></ul><p>Dependendo da sensibilidade dos dados com os quais seu software está lidando, pode ser necessário ir muito além das técnicas que compartilhei acima. Acima de tudo, você deve sempre atender às necessidades de segurança do cliente – mesmo que eles peçam para você fortalecer seu código além do que você acredita ser necessário.</p><h2 id="considera-es-finais"><strong>Considerações finais</strong></h2><p>Os desenvolvedores de software proprietário precisam prestar muita atenção à segurança do código-fonte. Eles não devem expor a si mesmos nem aos seus clientes a grandes riscos que são facilmente evitáveis.</p><p>Portanto, durante todo o processo de desenvolvimento, você precisa se proteger contra ameaças internas e externas. Não fazer isso pode colocar dados confidenciais em perigo, levando, potencialmente, a danos financeiros e de reputação significativos — a todos os envolvidos.</p><p><em><em>Imagem </em>produzida por <em>Gorodenkoff </em>e licenciada<em> </em>por meio da <em>Adobe Stock Photos</em></em></p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
