Como tornar um site seguro com https

87

Eu tenho que construir um pequeno webapp para uma empresa manter seus dados de negócios ... Somente aqueles dentro da empresa irão usá-lo, mas estamos planejando hospedá-lo em domínio público, para que os funcionários possam se conectar ao aplicativo de vários locais . (Até agora, desenvolvi aplicativos da web que são hospedados apenas internamente)

Estou pensando se preciso usar uma conexão segura (https) ou apenas a autenticação de formulários é suficiente.

Se você disser https, tenho algumas perguntas:

  1. O que devo fazer para preparar meu site para https. (Preciso alterar o código / configuração)
  2. SSL e https são a mesma coisa ...
  3. Preciso me inscrever com alguém para obter uma licença ou algo assim.
  4. Preciso tornar todas as minhas páginas seguras ou apenas a página de login ...

Eu estava procurando uma resposta na Internet, mas não consegui obter todos esses pontos ... Qualquer white paper ou outras referências também seriam úteis ...

Sinta-se à vontade para perguntar se precisar de mais informações.

obrigado

  • Rajá
O rei
fonte
Olá a todos ... Obrigado a todos ... Todas as suas respostas foram muito úteis ... Seria injusto selecionar uma resposta aqui ... (SO deve ter uma disposição para tais situações). portanto, selecionei uma resposta e votei a favor das outras ... A resposta selecionada é tão importante quanto as outras respostas ...
The King
3
Trabalho adicional de cautela, dependendo de quão confidencial as informações são (por exemplo, informações pessoais podem estar sujeitas a leis estaduais) e qual relacionamento e contrato você tem com a empresa, você pode querer pensar se seria responsável se alguém invade o site.
Huynhjl
Depois de ter o certificado instalado em seu servidor, para adicionar https ao seu site no IIS, tudo que você precisa fazer é ir ao site e "Editar Bindings", escolher https, e escolher o certificado.
bgmCoder

Respostas:

49

O que devo fazer para preparar meu site para https. (Preciso alterar o código / configuração)

Você deve manter as melhores práticas para codificação segura em mente (aqui está uma boa introdução: http://www.owasp.org/index.php/Secure_Coding_Principles ), caso contrário, tudo que você precisa é um certificado SSL configurado corretamente.

SSL e https são o mesmo ..

Praticamente, sim.

Preciso me inscrever com alguém para obter uma licença ou algo assim.

Você pode comprar um certificado SSL de uma autoridade de certificação ou usar um certificado autoassinado. Os que você pode comprar variam muito de preço - de $ 10 a centenas de dólares por ano. Você precisaria de um desses se abrir uma loja online, por exemplo. Os certificados autoassinados são uma opção viável para um aplicativo interno. Você também pode usar um para desenvolvimento. Este é um bom tutorial sobre como configurar um certificado autoassinado para IIS: Habilitando SSL no IIS 7.0 usando certificados autoassinados

Preciso tornar todas as minhas páginas protegidas ou apenas a página de login.

Use HTTPS para tudo, não apenas para o login inicial do usuário. Não vai ser uma sobrecarga e significará que os dados que os usuários enviam / recebem de seu aplicativo hospedado remotamente não podem ser lidos por terceiros se forem interceptados. Até o Gmail agora ativa o HTTPS por padrão.

Rowlf
fonte
1
Você também pode obter certificados TLS gratuitos, ou seja, em Let's encrypt
1615903 de
8

Que tipo de dados de negócios ? Segredos comerciais ou apenas coisas que eles não querem que as pessoas vejam, mas se vazassem, não seria um grande problema? Se estivermos falando de segredos comerciais, informações financeiras, informações de clientes e coisas que geralmente são confidenciais. Então, nem mesmo vá por esse caminho.

Estou pensando se preciso usar uma conexão segura (https) ou apenas a autenticação de formulários é suficiente.

Use uma conexão segura o tempo todo.

Preciso alterar o código / configuração

Sim. Bem, pode não ser. Você pode querer que um especialista faça isso por você.

SSL e https são a mesma coisa ...

Principalmente sim. As pessoas geralmente se referem a essas coisas como a mesma coisa.

Preciso me inscrever com alguém para obter uma licença ou algo assim.

Você provavelmente deseja que seu certificado seja assinado por uma autoridade de certificação. Isso vai custar a você ou ao seu cliente um pouco de dinheiro.

Preciso tornar todas as minhas páginas seguras ou apenas a página de login ...

Use https. O desempenho geralmente não é um problema se o site se destina a usuários internos.

Eu estava procurando uma resposta na Internet, mas não consegui obter todos esses pontos ... Qualquer white paper ou outras referências também seriam úteis ...

Comece aqui para obter algumas dicas: http://www.owasp.org/index.php/Category:OWASP_Guide_Project

Observe que SSL é uma peça minúscula para tornar seu site seguro, uma vez que ele pode ser acessado pela Internet. Isso não impede muitos tipos de hacking.

Huynhjl
fonte
+1 pelo bom conselho sobre proteção total e prevenção de desastres, perguntando se as informações são muito confidenciais e recomendando não colocá-las online
BlueTrin
7

Acho que você está se confundindo com a autenticação do seu site e SSL.

Se você precisa colocar seu site em SSL, então você precisa instalar um certificado SSL em seu servidor web. Você pode comprar um certificado para você em um dos lugares como Symantec etc. O certificado conteria seu par de chave pública / privada, junto com outras coisas.

Você não precisará fazer nada em seu código-fonte e ainda poderá continuar a usar seu formulário de autorização (ou qualquer outro) em seu site. É apenas isso, qualquer comunicação de dados que ocorre entre o servidor web e o cliente será criptografada e assinada usando seu certificado. As pessoas usariam secure-HTTP (https: //) para acessar seu site.

Veja isto para mais informações -> http://en.wikipedia.org/wiki/Transport_Layer_Security

Bhaskar
fonte
3

Para dados de negócios, se os dados forem privados, eu usaria uma conexão segura, caso contrário, uma autenticação de formulários é suficiente.

Se você decidir usar uma conexão segura, observe que não tenho experiência com sites de segurança, estou apenas retratando o que encontrei durante minha própria experiência pessoal. Se eu estiver errado de alguma forma, sinta-se à vontade para me corrigir.

O que devo fazer para preparar meu site para https. (Preciso alterar o código / configuração)

Para habilitar SSL (Secure Sockets Layer) para o seu site, você precisa configurar um certificado, código ou configuração que não seja alterado.

Habilitei o SSL para um servidor web interno, usando OpenSSL e ActivePerl a partir deste tutorial online . Se for usado para um público maior (meu público era de menos de 10 pessoas) e for de domínio público, sugiro buscar alternativas profissionais.

SSL e https são a mesma coisa ...

Não exatamente, mas eles andam de mãos dadas! O SSL garante que os dados sejam criptografados e descriptografados enquanto você visualiza o site, httpsé o URI necessário para acessar o site seguro. Você perceberá que, ao tentar acessá- http://secure.mydomain.comlo, será exibida uma mensagem de erro.

Preciso me inscrever com alguém para obter uma licença ou algo assim.

Você não precisaria obter uma licença, mas sim um certificado. Você pode pesquisar empresas que oferecem serviços profissionais com sites de segurança, como a VeriSign, por exemplo.

Preciso tornar todas as minhas páginas seguras ou apenas a página de login ...

Assim que seu certificado for habilitado, mydomain.comtodas as páginas incluídas *.mydomain.comserão protegidas.

Anthony Forloney
fonte
1

4. Preciso tornar todas as minhas páginas seguras ou apenas a página de login ...

Basta manter a página de login em https

isso garantirá que não haja sobrecarga ao navegar em outras páginas. a condição é que você precise fornecer as configurações de autenticação corretas na configuração da web. Isso é para garantir que os usuários que não estejam logados não consigam navegar nas páginas que precisam de autenticação.

Balalakshmi
fonte
3
Veicular apenas parte do seu site sob TLS não é seguro. Um invasor ativo pode usar SSLStrip e ter acesso a páginas supostamente protegidas.
Tobu de
1

@balalakshmi mencionou sobre as configurações de autenticação corretas. A autenticação é apenas metade do problema, a outra metade é a autorização.

Se você estiver usando autenticação de formulários e controles padrão, por exemplo, <asp:Login>há algumas coisas que você precisa fazer para garantir que apenas seus usuários autenticados possam acessar páginas seguras.

Em web.config, na <system.web>seção, você precisará desativar o acesso anônimo por padrão:

<authorization>
 <deny users="?" />
</authorization>

Todas as páginas que serão acessadas anonimamente (como a própria página Login.aspx) precisarão ter uma substituição que permite novamente o acesso anônimo. Isso requer um <location>elemento e deve estar localizado no <configuration>nível ( fora da <system.web>seção), como este:

<!-- Anonymous files -->
<location path="Login.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

Observe que você também precisará permitir o acesso anônimo a quaisquer folhas de estilo ou scripts usados ​​pelas páginas anônimas:

<!-- Anonymous folders -->
<location path="styles">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

Esteja ciente de que o pathatributo do local é relativo à web.configpasta e não pode ter um ~/prefixo, ao contrário da maioria dos outros atributos de configuração do tipo de caminho.

devstuff
fonte
-2

Tente fazer um diretório de inicialização em PHP, como em

<?PHP
$ip = $_SERVER['REMOTE_ADDR'];
$privacy = ['BOOTSTRAP_CONFIG'];
$shell   = ['BOOTSTRAP_OUTPUT'];
enter code here
if $ip == $privacy {
function $privacy int $ip = "https://";
} endif {
echo $shell
}
?>

É principalmente isso!

Ce0ns
fonte
3
Na verdade, isso não está respondendo à pergunta
Andreas