Comment créer un site Web sécurisé avec https

87

Je dois créer une petite application Web pour qu'une entreprise conserve ses données commerciales ... Seuls les membres de l'entreprise l'utiliseront, mais nous prévoyons de l'héberger dans le domaine public, afin que les employés puissent se connecter à l'application à partir de différents endroits . (Jusqu'à présent, j'ai créé des applications Web qui sont hébergées en interne uniquement)

Je me demande si je dois utiliser une connexion sécurisée (https) ou simplement l'authentification par formulaire suffit.

Si vous dites https, j'ai quelques questions:

  1. Que dois-je faire pour préparer mon site Web pour https. (Dois-je modifier le code / la configuration)
  2. SSL et https sont-ils identiques ...
  3. Dois-je postuler avec quelqu'un pour obtenir une licence ou quelque chose comme ça.
  4. Dois-je sécuriser toutes mes pages ou uniquement la page de connexion ...

Je cherchais une réponse sur Internet, mais je n'ai pas pu obtenir tous ces points ... Un livre blanc ou d'autres références seraient également utiles ...

N'hésitez pas à demander si vous avez besoin de plus d'informations.

Merci

  • Raja
Le roi
la source
Salut à tous ... Merci pour tout le monde ... Toutes vos réponses ont été très utiles ... Il serait injuste de sélectionner une réponse ici ... (SO doit avoir une disposition pour de telles situations). par conséquent, j'ai sélectionné une réponse et j'ai voté pour les autres ... La réponse choisie est tout aussi importante que les autres réponses ...
The King
3
Précaution supplémentaire, en fonction du degré de confidentialité des informations (par exemple, les informations personnelles peuvent être soumises à la loi fédérale) et de la relation et du contrat que vous avez avec l'entreprise, vous voudrez peut-être vous demander si quelqu'un pirate le site.
huynhjl
Une fois le certificat installé sur votre serveur, pour ajouter https à votre site Web dans IIS, il ne vous reste plus qu'à vous rendre sur le site et à "Modifier les liaisons", à choisir https et à choisir le certificat.
bgmCoder

Réponses:

49

Que dois-je faire pour préparer mon site Web pour https. (Dois-je modifier le code / la configuration)

Gardez à l'esprit les meilleures pratiques pour un codage sécurisé (voici une bonne introduction: http://www.owasp.org/index.php/Secure_Coding_Principles ), sinon tout ce dont vous avez besoin est un certificat SSL correctement configuré.

SSL et https sont-ils identiques.

À peu près, oui.

Dois-je postuler avec quelqu'un pour obtenir une licence ou quelque chose comme ça.

Vous pouvez acheter un certificat SSL auprès d'une autorité de certification ou utiliser un certificat auto-signé. Ceux que vous pouvez acheter varient énormément en prix - de 10 $ à des centaines de dollars par an. Vous en auriez besoin si vous créez une boutique en ligne, par exemple. Les certificats auto-signés sont une option viable pour une application interne. Vous pouvez également utiliser l'un de ceux-ci pour le développement. Voici un bon tutoriel sur la façon de configurer un certificat auto-signé pour IIS: Activation de SSL sur IIS 7.0 à l'aide de certificats auto-signés

Dois-je sécuriser toutes mes pages ou uniquement la page de connexion.

Utilisez HTTPS pour tout, pas seulement pour la connexion initiale de l'utilisateur. Cela ne sera pas trop lourd et cela signifiera que les données que les utilisateurs envoient / reçoivent de votre application hébergée à distance ne peuvent pas être lues par des tiers si elles sont interceptées. Même Gmail active désormais HTTPS par défaut.

Rowlf
la source
1
Vous pouvez également obtenir des certificats TLS gratuits, c'est-à-dire de Let's
encrypt
8

Quel type de données d'entreprise ? Des secrets commerciaux ou tout simplement des trucs qu'ils ne veulent pas que les gens voient, mais s'ils sortaient, ce ne serait pas un gros problème? Si nous parlons de secrets commerciaux, d'informations financières, d'informations clients et de choses généralement confidentielles. Alors ne suivez même pas cette voie.

Je me demande si je dois utiliser une connexion sécurisée (https) ou simplement l'authentification par formulaire suffit.

Utilisez une connexion sécurisée jusqu'au bout.

Dois-je modifier le code / la configuration

Oui. Peut-être pas. Vous voudrez peut-être faire appel à un expert pour vous.

SSL et https sont-ils identiques ...

Surtout oui. Les gens se réfèrent généralement à ces choses comme étant la même chose.

Dois-je postuler avec quelqu'un pour obtenir une licence ou quelque chose comme ça.

Vous souhaitez probablement faire signer votre certificat par une autorité de certification. Cela vous coûtera un peu d'argent à vous ou à votre client.

Dois-je sécuriser toutes mes pages ou uniquement la page de connexion ...

Utilisez https partout. Les performances ne sont généralement pas un problème si le site est destiné aux utilisateurs internes.

Je cherchais une réponse sur Internet, mais je n'ai pas pu obtenir tous ces points ... Un livre blanc ou d'autres références seraient également utiles ...

Commencez ici pour quelques conseils: http://www.owasp.org/index.php/Category:OWASP_Guide_Project

Notez que SSL est un élément minuscule de sécurisation de votre site Web une fois qu'il est accessible depuis Internet. Cela n'empêche pas la plupart des types de piratage.

huynhjl
la source
+1 pour les conseils judicieux sur la sécurisation complète et la prévention d'une catastrophe en demandant si les informations sont très confidentielles et en recommandant de ne pas les mettre en ligne
BlueTrin
7

Je pense que vous vous trompez avec l'authentification de votre site et SSL.

Si vous avez besoin de faire passer votre site en SSL, vous devez installer un certificat SSL sur votre serveur Web. Vous pouvez acheter un certificat pour vous-même à l'un des endroits comme Symantec, etc. Le certificat contiendrait votre paire de clés publique / privée, ainsi que d'autres choses.

Vous n'aurez pas besoin de faire quoi que ce soit dans votre code source et vous pouvez continuer à utiliser votre authentification de formulaire (ou toute autre) sur votre site. C'est juste que toute communication de données qui a lieu entre le serveur Web et le client sera cryptée et signée à l'aide de votre certificat. Les gens utiliseraient Secure-HTTP (https: //) pour accéder à votre site.

Voir ceci pour plus d'informations -> http://en.wikipedia.org/wiki/Transport_Layer_Security

Bhaskar
la source
3

Pour les données d'entreprise, si les données sont privées, j'utiliserais une connexion sécurisée, sinon une authentification par formulaire suffit.

Si vous décidez d'utiliser une connexion sécurisée, veuillez noter que je n'ai pas d'expérience en matière de sécurisation de sites Web, je ne fais que renoncer à ce que j'ai rencontré au cours de ma propre expérience personnelle. Si je me trompe de toute façon, n'hésitez pas à me corriger.

Que dois-je faire pour préparer mon site Web pour https. (Dois-je modifier le code / la configuration)

Afin d'activer SSL (Secure Sockets Layer) pour votre site Web, vous devez configurer un certificat, un code ou une configuration non modifiée.

J'ai activé SSL pour un serveur Web interne, en utilisant OpenSSL et ActivePerl de ce didacticiel en ligne . Si cela est utilisé pour un public plus large (mon public était de moins de 10 personnes) et est dans le domaine public, je suggère de rechercher des alternatives professionnelles.

SSL et https sont-ils identiques ...

Pas exactement, mais ils vont de pair! SSL garantit que les données sont cryptées et décryptées pendant que vous consultez le site Web, httpsc'est l'URI qui est nécessaire pour accéder au site Web sécurisé. Vous remarquerez que lorsque vous essayez d'y accéder http://secure.mydomain.com, un message d'erreur s'affiche.

Dois-je postuler avec quelqu'un pour obtenir une licence ou quelque chose comme ça.

Vous n'aurez pas besoin d'obtenir une licence, mais plutôt un certificat. Vous pouvez rechercher des entreprises qui offrent des services professionnels avec des sites Web sécurisés, comme VeriSign par exemple.

Dois-je sécuriser toutes mes pages ou uniquement la page de connexion ...

Une fois que votre certificat est activé, mydomain.comchaque page qui tombe sous *.mydomain.comsera sécurisée.

Anthony Forloney
la source
1

Dois-je sécuriser toutes mes pages ou uniquement la page de connexion ...

Gardez simplement la page de connexion sous https

cela garantira qu'il n'y a pas de frais généraux lors de la navigation sur d'autres pages. la condition est que vous devez fournir des paramètres d'authentification corrects dans la configuration Web. Ceci permet de garantir que les utilisateurs qui ne sont pas connectés ne pourront pas parcourir les pages nécessitant une authentification.

balalakshmi
la source
3
Servir uniquement une partie de votre site sous TLS n'est pas sécurisé. Un attaquant actif peut utiliser SSLStrip et avoir accès à des pages prétendument protégées.
Tobu
1

@balalakshmi a mentionné les paramètres d'authentification corrects. L'authentification n'est que la moitié du problème, l'autre moitié est l'autorisation.

Si vous utilisez l'authentification par formulaire et les contrôles standard comme <asp:Login>il y a quelques choses que vous devez faire pour vous assurer que seuls vos utilisateurs authentifiés peuvent accéder aux pages sécurisées.

Dans web.config, sous la <system.web>section, vous devrez désactiver l'accès anonyme par défaut:

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

Toutes les pages qui seront accessibles de manière anonyme (comme la page Login.aspx elle-même) devront avoir un remplacement qui autorise à nouveau l'accès anonyme. Cela nécessite un <location>élément et doit être situé au <configuration>niveau (en dehors de la <system.web>section), comme ceci:

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

Notez que vous devrez également autoriser l'accès anonyme à toutes les feuilles de style ou scripts utilisés par les pages anonymes:

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

Sachez que l' pathattribut de l'emplacement est relatif au web.configdossier et ne peut pas avoir de ~/préfixe, contrairement à la plupart des autres attributs de configuration de type chemin.

devstuff
la source
-2

Essayez de créer un répertoire de démarrage en PHP, comme dans

<?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
}
?>

C'est principalement ça!

Ce0ns
la source
3
Cela ne répond pas vraiment à la question
Andreas