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:
- Que dois-je faire pour préparer mon site Web pour https. (Dois-je modifier le code / la configuration)
- SSL et https sont-ils identiques ...
- Dois-je postuler avec quelqu'un pour obtenir une licence ou quelque chose comme ça.
- 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
la source
Réponses:
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é.
À peu près, oui.
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
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.
la source
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.
Utilisez une connexion sécurisée jusqu'au bout.
Oui. Peut-être pas. Vous voudrez peut-être faire appel à un expert pour vous.
Surtout oui. Les gens se réfèrent généralement à ces choses comme étant la même chose.
Vous souhaitez probablement faire signer votre certificat par une autorité de certification. Cela vous coûtera un peu d'argent à vous ou à votre client.
Utilisez https partout. Les performances ne sont généralement pas un problème si le site est destiné aux utilisateurs internes.
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.
la source
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
la source
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.
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.
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,
https
c'est l'URI qui est nécessaire pour accéder au site Web sécurisé. Vous remarquerez que lorsque vous essayez d'y accéderhttp://secure.mydomain.com
, un message d'erreur s'affiche.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.
Une fois que votre certificat est activé,
mydomain.com
chaque page qui tombe sous*.mydomain.com
sera sécurisée.la source
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.
la source
@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'
path
attribut de l'emplacement est relatif auweb.config
dossier et ne peut pas avoir de~/
préfixe, contrairement à la plupart des autres attributs de configuration de type chemin.la source
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!
la source