È sicuro che il codice sorgente del sito Web sia pubblico? [duplicare]

4

Sto lavorando su un sito Web e vorrei averlo sotto controllo di revisione. Ho usato git per progetti precedenti prima e mi piace. Questo progetto però è un sito web scritto in Django. Sono totalmente open source, ma mi chiedo se sarebbe una cattiva idea lasciare pubblico il codice sorgente per il sito Web, in modo che qualcuno con cattive intenzioni possa cercare nel repository buchi di sicurezza?

Ovviamente non ho intenzione di caricare cose che dovrebbero essere mantenute password segrete, ecc.

Il sito sarà una pagina web per un club sportivo locale, quindi suppongo che la sicurezza per il sito non debba essere così alta come per esempio un negozio online.

Quindi la mia domanda è, è una cattiva idea avere un repository pubblico per un sito web Django, o è accettabile se non aggiungo le informazioni sensibili?

Ho dato un'occhiata al thread Sistemi Open Source vs Closed Source discutere lo stesso argomento, ma piuttosto discute in generale l'open source e il closed source da un punto di vista della sicurezza. Discussione interessante, tuttavia non abbastanza per me per prendere una decisione. Nel thread alcune persone sottolineano che è importante che tipo di progetto si sta lavorando. Potresti fornirmi alcune raccomandazioni per il mio progetto con le seguenti specifiche.

  • Piccola pagina web per il club sportivo locale.
  • Nessun pagamento in loco.
  • Nessuna informazione sensibile in generale tranne se qualcuno userebbe le stesse informazioni utente di un altro sito.
  • Una persona che sta sviluppando (io) potrebbe essere un po 'di più.

Quello che ho scoperto finora:

Pro open source

  • Probabilmente scriverò codice migliore se so che potrebbe essere letto da altri.
  • Se qualcuno vede un bug, si spera che mi informi.
  • Gli hacker conoscono comunque i buchi di sicurezza comuni.
  • Non c'è interesse o molto piccolo (profitto) nell'hacking del mio sito.
  • Contribuire alla comunità open source.

Pro closed source

  • Sicurezza tramite oscurità = > un altro livello di sicurezza.
  • Se io o qualcun altro che lavora sul sito commetteremo credenziali sensibili per errore.
  • Il progetto è esposto perché sarà direttamente accessibile da Internet.
posta mseln 19.02.2015 - 17:01
fonte

4 risposte

12

Se il tuo sito web è sicuro, anche il codice sorgente non aiuterebbe un utente malintenzionato in un mondo perfetto. Ma noi non viviamo in questo mondo.

Rendendo pubblico il codice sorgente, ti stai tenendo contemporaneamente a una codifica standard più elevata e introducendo più rischi. Dal momento che stai dando via il tuo codice a chiunque lo chieda, è meglio renderlo solido come una roccia. (In effetti, dovresti farlo comunque, ma sono sicuro che lo sai!)

Rilasciando la tua fonte consentirai a persone buone e utili di segnalare cose cattive e ti darà una motivazione per scrivere sempre codice solido. Direi che è una buona idea. Tuttavia, dovresti parlare del rischio con il proprietario del sito web. I repository privati esistono su GitHub e puoi gestire il tuo repository Git server / locale Git locale per il controllo della versione privata.

Lettura suggerita:

risposta data 19.02.2015 - 17:12
fonte
6

Renderà il tuo sito meno sicuro? Sì. Con un fattore di 0,000000000000001%, dare o prendere uno zero.

Innanzitutto, chi vuole hackerare un sito web di un club sportivo per alcuni indirizzi email?

In secondo luogo, chi vuole passare attraverso tutto il codice per decifrare eventuali errori o vulnerabilità.

In terzo luogo, ci sono tonnellate di siti che utilizzano il codice open source (WP) che viene filtrato da milioni. Gli hacker avrebbero molto di più da guadagnare attraverso 1 set di codice per milioni di vittime rispetto alla tua relazione 1 a 1.

In quarto luogo, la maggior parte delle volte che i siti vengono attaccati c'è l'uso di bot o software che esegue la scansione attraverso i metodi di attacco conosciuti. Avere il tuo codice in dominio pubblico non significa nulla per questo.

Quindi l'unico problema che hai è se hai un collega, un amico, un frenetico o semplicemente un nemico che sa che hai scritto questo sito ed è un genio segreto e ha abbastanza tempo per analizzare il tuo codice per trovare eventuali aperture. Questo è davvero molto inverosimile, ma credo che potrebbe succedere.

    
risposta data 19.02.2015 - 17:29
fonte
4

La risposta ha opinioni contrastanti

Nascondere il codice sorgente è chiamato sicurezza attraverso l'oscurità. È generalmente riconosciuto che la sicurezza attraverso l'oscurità non è una valida forma di sicurezza. Tuttavia, esiste un ideale contrastante chiamato "difesa in profondità". L'idea è che non ti affidi mai a un solo livello di difesa. Se il tuo codice sorgente è liberamente disponibile, sei dipendente dalla sicurezza di un solo livello: la sicurezza scritta nel codice sorgente.

La risposta al tuo enigma dipende probabilmente da alcuni fattori:

  • Il sito web gestisce i soldi? Se il denaro è coinvolto, c'è un incentivo più strong per qualcuno che voglia rompere il sistema. La difesa in profondità comincia a sembrare migliore, perché chiunque sia in grado di aiutarti a trovare i bug deve anche decidere se preferirebbe invece fare soldi.
  • Quanto ti aspetti che le persone assistano nello sviluppo? Se nessuno ti aiuta a rendere le cose più sicure, le uniche persone che guardano il codice hanno intenzioni malevole. Se pensi che questo sia qualcosa che potrebbe prendere fuoco e decollare sotto il suo potere, allora è più probabile che gli hacker dei white hat trovino le cose e suggeriscano delle soluzioni.
  • Qualcuno sa che il sito Web utilizza questo pacchetto sorgente? È più probabile che le persone malintenzionate viaggino dal sito web al codice sorgente, non viceversa. Più facile è capire quale repository Git contiene il codice sorgente per quel sito Web, più un vantaggio per gli hacker.
risposta data 19.02.2015 - 18:37
fonte
1

Le persone con cattive intenzioni sono più che capaci di trovare buchi di sicurezza comunque. L'open-sourcing del sito probabilmente non porterà a revisioni di terze parti che a volte l'open source può portare (per farlo funzionare, qualcun altro deve preoccuparsi di farlo), ma se la sicurezza dipende dal mantenere il codice sorgente segreto non avere sicurezza Assicurati di escludere le password e simili.

    
risposta data 19.02.2015 - 17:06
fonte

Leggi altre domande sui tag