web-dev-qa-db-fra.com

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

Je dois créer une petite application Web pour qu'une entreprise conserve ses données commerciales ... Seules les personnes 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 à des applications depuis différents emplacements. . (Jusqu'à présent, j'ai construit des applications Web 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 faire une demande auprès de quelqu'un pour obtenir une licence ou autre chose?.
  4. Dois-je sécuriser toutes mes pages ou uniquement la page de connexion ...

Je cherchais une réponse sur Internet, mais je n’étais pas en mesure d’obtenir tous ces points ... Tout livre blanc ou autre référence serait également utile ...

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

Merci

  • Raja
87
The King

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

Vous devez garder à l’esprit les meilleures pratiques en matière de codage sécurisé (voici une bonne introduction: http://www.owasp.org/index.php/Secure_Coding_Principles ), sinon tout ce dont vous avez besoin est d’une configuration correcte. Certificat SSL.

SSL et https sont-ils identiques?.

Assez bien, oui.

Dois-je faire une demande auprès de quelqu'un pour obtenir une licence ou autre chose?.

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 dans le prix - de 10 $ à des centaines de dollars par an. Vous en aurez besoin, par exemple, si vous créez une boutique en ligne. 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 configuration d'un certificat auto-signé pour IIS: Activation de SSL sur IIS 7.0 Utilisation de certificats auto-signés

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

Utilisez HTTPS pour tout, pas seulement la connexion initiale de l'utilisateur. Cela ne constituera pas une surcharge et signifiera que les données envoyées/reçues par les utilisateurs à partir de votre application hébergée à distance ne pourront pas être lues par des tiers si elles sont interceptées. Même Gmail active désormais HTTPS par défaut.

48
Rowlf

Quel type de données commerciales ? Des secrets commerciaux ou tout simplement des choses qu'ils ne veulent pas que les gens voient mais si ça sortait, ce ne serait pas grave? Si nous parlons de secrets commerciaux, d’informations financières, d’informations clients, et de choses qui sont généralement confidentielles. Alors ne même pas aller dans 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 qu'un expert le fasse pour vous.

SSL et https sont-ils identiques?.

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

Dois-je faire une demande auprès de quelqu'un pour obtenir une licence ou autre chose?.

Vous voulez 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’étais pas en mesure d’obtenir tous ces points ... Tout livre blanc ou autre référence serait également utile ...

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

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

8
huynhjl

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

Si vous devez obtenir 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 emplacements tels que Symantec, etc. Le certificat contiendrait votre paire de clés publique/privée, ainsi que d'autres éléments.

Vous n'aurez rien à faire dans votre code source, et vous pouvez toujours continuer à utiliser votre formulaire d'authentification de formulaire (ou tout autre) sur votre site. C'est juste que toute communication de données entre le serveur Web et le client sera cryptée et signée à l'aide de votre certificat. Les gens utilisent secure-HTTP (https: //) pour accéder à votre site.

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

7
Bhaskar

Pour les données professionnelles, 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 dans la sécurisation de sites Web, je ne fais que rétracter ce que j'ai rencontré lors de ma propre expérience. 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)

Pour activer SSL (Secure Sockets Layer) pour votre site Web, vous devez configurer un certificat, un code ou config n'est pas modifié.

J'ai activé SSL pour un serveur Web interne en utilisant OpenSSL et ActivePerl de ce tutoriel en ligne . Si cela est utilisé pour un public plus large (mon public était inférieur à 10 personnes) et est du domaine public, je suggère de chercher 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échiffrées dans les deux sens lorsque vous consultez le site Web. https correspond à l'URI nécessaire pour accéder au site Web sécurisé. Vous remarquerez lorsque vous essayez d'accéder à http://secure.mydomain.com il affiche un message d'erreur.

Dois-je faire une demande auprès de quelqu'un pour obtenir une licence ou autre chose?.

Vous n’auriez pas besoin d’obtenir une licence, mais plutôt un certificat. Vous pouvez rechercher des entreprises proposant des services professionnels avec des sites Web sécurisés, telles que VeriSign , par exemple.

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

Une fois que votre certificat est activé pour mydomain.com chaque page qui tombe sous *.mydomain.com sera sécurisé.

3
Anthony Forloney

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

Si vous utilisez l'authentification par formulaires et les contrôles standard tels que <asp:Login> vous devez effectuer certaines opérations pour vous assurer que seuls les utilisateurs authentifiés peuvent accéder aux pages sécurisées.

Dans web.config, sous le <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 (telles que la page Login.aspx elle-même) devront avoir un remplacement qui permet à nouveau l'accès anonyme. Cela nécessite un <location> élément et doit être situé à la <configuration> _ niveau (extérieur le <system.web> section), comme ceci:

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

Notez que vous devez é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'attribut path de l'emplacement est relatif à l'attribut web.config dossier et ne peut pas avoir un ~/ préfixe, contrairement à la plupart des autres attributs de configuration de type chemin.

1
devstuff

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

Il suffit de garder la page de connexion sous https

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

1
balalakshmi