2010-02-05 21 views
84

Devo costruire una piccola webapp per un'azienda per mantenere i propri dati aziendali ... Solo quelli all'interno dell'azienda lo useranno, ma stiamo progettando di ospitarli in pubblico dominio, in modo che i dipendenti possano connettersi all'app da varie posizioni. (Fino ad ora ho creato app web ospitate solo internamente)Come rendere sicuro un sito Web con https

Mi chiedo se è necessario utilizzare una connessione protetta (https) o solo l'autenticazione dei moduli è sufficiente.

Se dici https, ho alcune domande:

  1. Cosa devo fare per preparare il mio sito per https. (Devo modificare il codice/Config)
  2. È SSL e https uno e lo stesso ...
  3. Devo chiedere a qualcuno di ottenere qualche licenza o qualcosa del genere.
  4. Devo fare tutte le mie pagine agganciati o in un'unica pagina di login ...

ero alla ricerca su Internet per la risposta, ma non ero in grado di ottenere tutti questi punti ... Qualsiasi whitepaper o altro riferimenti sarebbe anche utile ...

Sentitevi liberi di chiedere in caso avete bisogno di ulteriori informazioni.

Grazie

  • Raja
+0

Ciao a tutti ... Grazie a tutti ... Tutte le vostre risposte sono state di grande aiuto ... Sarebbe ingiusto selezionare una risposta qui ... (SO deve avere una disposizione per tali sitations). quindi, ho selezionato una risposta e ho svalutato le altre ... La risposta selezionata è tanto importante quanto altre risposte ... –

+3

Altro lavoro di cautela, a seconda di quanto siano riservate le informazioni (ad esempio le informazioni personali possono essere soggette a stato di legge federale) e quale rapporto e contratto avete con la società, potreste pensare se sareste responsabili se qualcuno ha violato il sito. – huynhjl

+0

Una volta installato il certificato sul server, per aggiungere https al tuo sito Web in IIS, tutto ciò che devi fare è andare sul sito e "Modifica binding", scegliere https e scegliere il certificato. – bgmCoder

risposta

48

Cosa devo fare per preparare il mio sito web per https. (Ho bisogno di alterare il codice/Config)

Si dovrebbe tenere le best practice per la codifica sicura in mente (qui è una buona introduzione: http://www.owasp.org/index.php/Secure_Coding_Principles), altrimenti tutto ciò che serve è un certificato SSL impostato correttamente.

È SSL e HTTPS uno e lo stesso ..

Praticamente, sì.

Devo chiedere a qualcuno di ottenere la licenza o qualcosa del genere.

È possibile acquistare un certificato SSL da un'autorità di certificazione o utilizzare un certificato autofirmato. Quelli che puoi acquistare variano enormemente nel prezzo, da $ 10 a centinaia di dollari l'anno. Avresti bisogno di uno di quelli se crei un negozio online, per esempio. I certificati autofirmati sono un'opzione valida per un'applicazione interna. Puoi anche usare uno di quelli per lo sviluppo. Ecco un buon tutorial su come impostare un certificato auto-firmato per IIS: Enabling SSL on IIS 7.0 Using Self-Signed Certificates

Devo fare tutte le mie pagine protette o solo la pagina di login ..

Usa HTTPS per tutto, non solo il login iniziale dell'utente. Non sarà un sovraccarico e significherebbe che i dati inviati/ricevuti dagli utenti dall'applicazione ospitata in remoto non possono essere letti da terzi se sono intercettati. Anche Gmail ora attiva HTTPS per impostazione predefinita.

+1

Puoi anche ottenere certificati TLS gratuiti, cioè da [Let's Encrypt] (https://letsencrypt.org/) – 1615903

3

Per i dati aziendali, se i dati sono privati ​​vorrei utilizzare una connessione protetta, altrimenti un autenticazione basata su form è sufficiente.

Se si decide di utilizzare una connessione protetta, si noti che non ho esperienza con la protezione di siti Web, sto solo ritrattando ciò che ho incontrato durante la mia esperienza personale. Se sbaglio in ogni caso, sentiti libero di correggermi.

Cosa devo fare per preparare il mio sito Web per https. (Ho bisogno di modificare il codice/Config)

Al fine di consentire SSL (Secure Sockets Layer) per il tuo sito, si avrebbe bisogno di set-up di un certificato, codice o di configurazione non è alterata.

Ho abilitato SSL per un server Web interno, utilizzando OpenSSL e ActivePerl da this online tutorial. Se viene utilizzato per un pubblico più ampio (il mio pubblico era inferiore a 10 persone) ed è di dominio pubblico, suggerisco di cercare alternative professionali.

È SSL e HTTPS uno e lo stesso ...

Non esattamente, ma vanno di pari passo! SSL garantisce che i dati siano crittografati e decrittografati avanti e indietro mentre si sta visualizzando il sito Web, https è l'URI necessario per accedere al sito Web sicuro. Si noterà quando si tenta di accedere a http://secure.mydomain.com visualizza un messaggio di errore.

Devo chiedere a qualcuno di ottenere una licenza o qualcosa del genere.

Non è necessario ottenere una licenza, ma piuttosto un certificato. Puoi dare un'occhiata alle aziende che offrono servizi professionali con siti Web sicuri, come ad esempio VeriSign.

Devo fare tutte le mie pagine agganciati o in un'unica pagina di login ...

Una volta che il certificato è abilitato per mydomain.com ogni pagina che cade sotto *.mydomain.com sarà garantito.

1

4.Do ho bisogno di fare tutte le mie pagine agganciati o in un'unica pagina di login ...

Basta tenere la pagina di login in https

questo farà in modo non v'è alcun overhead quando ad esplorare altre pagine. la condizione è che è necessario fornire le impostazioni di autenticazione corrette nella configurazione web. Questo per garantire che gli utenti che non hanno effettuato l'accesso non siano in grado di esplorare pagine che necessitano di autenticazione.

+2

Servire solo parte del tuo sito in TLS non è sicuro. Un utente malintenzionato attivo può utilizzare SSLStrip e avere accesso a pagine presumibilmente protette. – Tobu

8

Che tipo di dati commerciali ? Segreti commerciali o solo cose che non vogliono che le persone vedano, ma se uscisse, non sarebbe un grosso problema? Se stiamo parlando di segreti commerciali, informazioni finanziarie, informazioni sui clienti e cose generalmente riservate. Quindi non andare nemmeno giù per quella strada.

Mi chiedo se ho bisogno di usare un connessione protetta (https) o solo l'autenticazione forme è sufficiente.

Utilizzare una connessione sicura fino in fondo.

ho bisogno di modificare il codice/Config

Sì. Beh, potrebbe non esserlo. Potresti volere che un esperto lo faccia per te.

È SSL e HTTPS uno e lo stesso ...

Per lo più sì. Le persone di solito si riferiscono a quelle cose come la stessa cosa.

Devo chiedere a qualcuno di ottenere una licenza o qualcosa del genere.

Probabilmente si desidera che il certificato sia firmato da un'autorità di certificazione. Costerà a te o al tuo cliente un po 'di soldi.

Devo fare tutte le mie pagine agganciati o in un'unica pagina di login ...

utilizzare HTTPS in tutto. Le prestazioni non sono di solito un problema se il sito è pensato per gli utenti interni.

ero alla ricerca su Internet per la risposta, ma non ero in grado di ottenere tutti questi punti ... Qualsiasi whitepaper o altri riferimenti sarebbe anche utile ...

Inizia da qui per alcuni puntatori: http://www.owasp.org/index.php/Category:OWASP_Guide_Project

Si noti che SSL è un pezzo minuscolo di rendere sicuro il tuo sito web una volta che è accessibile da internet. Non impedisce la maggior parte degli hacker.

+0

+1 per il buon consiglio di proteggere tutto e prevenire un disastro chiedendo se le informazioni sono molto confidenziali e raccomandando di non metterlo online – BlueTrin

7

Penso che vi stiate confondendo con il vostro sito Autenticazione e SSL.

Se è necessario trasferire il sito in SSL, è necessario installare un certificato SSL nel server Web. È possibile acquistare un certificato per se stessi da uno dei luoghi come Symantec ecc. Il certificato conterrà la coppia di chiavi pubblica/privata, insieme ad altre cose.

Non è necessario eseguire alcuna operazione nel codice sorgente e continuare a utilizzare l'Autenticazione moduli (o qualsiasi altra) nel proprio sito. Proprio così, qualsiasi comunicazione di dati che avviene tra il server Web e il client verrà crittografata e firmata utilizzando il certificato. Le persone utilizzerebbero secure-HTTP (https: //) per accedere al tuo sito.

Visualizza questa per maggiori informazioni ->http://en.wikipedia.org/wiki/Transport_Layer_Security

1

@balalakshmi ha menzionato le corrette impostazioni di autenticazione. L'autenticazione è solo metà del problema, l'altra metà è l'autorizzazione.

Se si utilizza l'autenticazione basata su form e controlli standard come <asp:Login>, è necessario eseguire un paio di operazioni per garantire che solo gli utenti autenticati possano accedere alle pagine protette.

In web.config, nella sezione <system.web> è necessario disabilitare l'accesso anonimo per impostazione predefinita:

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

eventuali pagine che verranno accedere in modo anonimo (ad esempio la pagina Login.aspx stessa) avrà bisogno di avere un override che consente nuovamente l'accesso anonimo. Ciò richiede un elemento <location> e deve essere posizionato a livello <configuration> (di fuori sezione <system.web>), in questo modo:

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

Nota che avrete anche bisogno di consentire l'accesso anonimo a tutti i fogli di stile o script che sono utilizzati dalle pagine anonimi:

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

essere consapevoli del fatto che l'attributo della posizione path è relativo alla cartella web.config e non può avere un prefisso ~/, a differenza di molti altri p attributi di configurazione di tipo ath.

-2

provare a fare una directory di avvio in PHP, come in

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

Questo è principalmente esso!

+3

In realtà non risponde veramente alla domanda – Andreas

Problemi correlati