Ich entwickle eine große Community- / Forum-Website und möchte meinen Code auf GitHub hochladen , um zumindest eine Art Versionskontrolle darüber zu haben (da ich nichts anderes als eine .rar-Datei als Backup habe, nicht einmal SVN ), damit andere zu dem Projekt beitragen können, und vielleicht auch, damit meine potenziellen zukünftigen Arbeitgeber einen Teil meines Codes als eine Art Lehrplan sehen.
Aber was ich mich jetzt frage und ich bin überrascht, dass ich noch nie jemanden gesehen habe, der es erwähnt hat, ist der Sicherheitsaspekt. Ist das Veröffentlichen des Codes einer Website nicht eine RIESIGE Sicherheitslücke? Ist so, als würde man einem potenziellen Hacker oder jedem, der einen möglichen Exploit finden möchte, etwas geben, selbst wenn man bedenkt, dass die kritischen Dateien nicht hochgeladen werden (Datenbankkennwörter, Authentifizierungsskripte usw.).
Natürlich gibt es Millionen von Projekten, die auf GitHub hochgeladen wurden, und niemand wird meine nur "zufällig" finden. Aber wenn sie danach suchen, wäre es tatsächlich da.
Fazit: Mein Problem betrifft nicht das Urheberrecht oder Lizenzen, sondern andere, die Exploits auf meiner Website finden.
Vermisse ich hier etwas?
quelle
Antworten:
Ja. Wenn Sie sich darauf verlassen, dass Personen Ihren Quellcode nicht kennen, um zu verhindern, dass sie darin Sicherheits-Exploits finden, wird dies als Sicherheit durch Dunkelheit bezeichnet .
Das Problem: Es funktioniert nicht. Erfahrene Hacker benötigen den Quellcode nicht, um Schwachstellen zu finden und auszunutzen. Sie werden einige Fuzzing-Vorgänge durchführen , um Eingaben zu finden, die Probleme verursachen, und dann ihr Wissen darüber, wie das zugrunde liegende Betriebssystem / die zugrunde liegende Sprache / das zugrunde liegende Framework funktioniert, verwenden, um eine Sicherheitsanfälligkeit zu identifizieren.
Es besteht weitgehend Einigkeit darüber, dass die Veröffentlichung des Quellcodes die Sicherheit erhöht, indem wohlmeinende Personen Schwachstellen finden und beheben oder zumindest dem Entwickler davon erzählen können. Es gibt zwei wichtige Gründe, warum dies funktioniert:
Natürlich funktioniert es nicht mit Haustierprojekten, die nur wenige aktive Benutzer haben, aber es ist auch äußerst unwahrscheinlich, dass diese von einem Hacker angegriffen werden.
quelle
Zunächst können Sie die (verteilte) Versionskontrolle verwenden, ohne das Repository öffentlich zu machen. Sie können einfach ein Repo auf Ihrem lokalen Computer erstellen und auf andere Computer drücken oder von diesen ziehen. Sie können das Repository auch hochladen (wodurch Sie mehr Backups und eine einfachere Zusammenarbeit erhalten), ohne es öffentlich zu machen. GitHub bietet private Repos gegen eine Gebühr an, Bitbucket macht dasselbe und macht kleine (5 Personen oder so) private Repos kostenlos. Dann erhalten Sie natürlich nicht die anderen Vorteile, die Sie erwähnt haben.
Der Sicherheitsaspekt ist eher gering. Es gibt viele, viele lohnende Angriffsvektoren, die einfach getestet werden können, ohne auf den (serverseitigen) Quellcode zu achten (z. B. auf GET- und POST-Parameter achten, Cookies und Sitzungsbehandlung überprüfen, Eingaben hinzufügen, die maskiert und überprüft werden sollten wenn ja usw.). Wenn Sie für einen von ihnen anfällig sind, kann ein entschlossener Angreifer sie relativ schnell ausnutzen, ohne auf den Quellcode zu achten. Obskurere und schwerer auszunutzende Fehler sind (wahrscheinlich) auch im Quellcode schwerer zu erkennen, sodass Sie auch hier nicht viel verlieren.
Auf der anderen Seite kann die Veröffentlichung und Annahme von Beiträgen Menschen anziehen, die Heldentaten ohne schlechte Bedeutung erkennen und Ihnen davon erzählen (oder sie sogar selbst reparieren) können. Dies gilt in zweifacher Hinsicht, wenn es sehr beliebt ist, Sie aber kein Sicherheitsexperte sind (keine Beleidigung, aber Sie klingen nicht wie eine; zum Beispiel haben Sie Sicherheit nicht durch Dunkelheit erwähnt und festgestellt, dass Ihre Besorgnis kein Fall davon ist). .
quelle
BitBucket hat kostenlose private Repos und unterstützt sowohl Git als auch Mercurial.
quelle
Wenn Sie das Problem der Sicherheit beiseite lassen und feststellen, ob die Veröffentlichung Ihres Codes dies verbessern würde oder nicht, können Sie selbst ein Versionsverwaltungssystem auf Ihrem Computer einrichten. Wenn Git trivial ist, initialisieren Sie einfach ein lokales Repository und Sie sind fertig, aber das Festlegen eines SVN ist auch keine entmutigende Aufgabe. Vielleicht ein oder zwei Stunden nach den Tutorials, wenn Sie wenig Vorkenntnisse zum Einrichten von SVN haben.
So können Sie weiterhin von der Quellcodeverwaltung profitieren, unabhängig davon, ob Sie einen Onlinedienst nutzen oder nicht.
quelle
Die meisten böswilligen Hackerangriffe werden anonym durchgeführt. Eine Person in Russland, die ein Skript ausführt, das Hosts nach offenen Ports oder What-Have-You durchsucht. Niemand wird explizit über Ihren Code gießen, nur um einen Weg zu finden, sich einzumischen, um Schaden anzurichten. Nicht, wenn Sie nicht wirklich jemanden verärgern.
quelle