Also verwendet meine Firma eine Bitbucket Cloud für SCM, und ich benutze ScourceTree auf meiner Laptop-Workstation. Ich arbeite an einem Code-Projekt, das ursprünglich hauptsächlich von jemand anderem geschrieben wurde. Zurzeit verwendet die Software, an der ich arbeite, eine Klartext-Konfigurationsdatei, um Benutzername und Passwort an das Programm zu übergeben braucht.Wie gefährlich ist Commit-Code mit Klartext-Passwörtern in einem öffentlichen/ungesicherten Netzwerk? Wie handhabe ich Passwörter im Code richtig?
Nun, ich bin kein Fremder der Tatsache, dass dies eine sehr schlechte Sache ist, aber ich habe noch dazu kommen, das reparieren als Solo-Entwickler. (Obwohl es definitiv eine hohe Priorität hat).
Ich wollte heute Änderungen an der Konfigurationsdatei vornehmen, aber ich war zögerlich, da ich an einem ungesicherten Netzwerk in einem Café arbeitete. Das hat mich neugierig gemacht: Wie sicher sind die meisten dieser Cloud-basierten Code-Dienste (z. B. Bitbucket/Github) und wie gefährlich ist es, Code wie diesen in einem öffentlichen Netzwerk zu committen?
Ich habe die großartige Fähigkeit, remote zu arbeiten und möchte meinen Job nicht riskieren, indem ich mein Unternehmen unnötigen Risiken aussetze.
Da ich weiß, dass Klartext Passwörter eher eine schlechte Idee sind, fragte ich mich auch, wie ich dieses Problem beheben sollte. Die App, an der ich gerade arbeite, verwendet Java, und die Passwörter befinden sich in einer Eigenschaftendatei. Gibt es eine Java-Bibliothek oder ein Dienstprogramm, das ich kennen sollte (immer noch ein wenig neu in Java).
Ich hatte gehofft, dass dies ein allgemeiner Antwortpunkt für Anfänger sein könnte, die sich mit dem sicheren Umgang mit Passwörtern im Code (jeder Sprache) befassen. Ich arbeite auch in C++ und PHP, daher würde ich mich über Ratschläge freuen, wie man mit solchen Dingen in diesen Sprachen umgehen kann. Brauche keine extremen Details, nur zu suchende Schlüsselwörter. Sind Bibliotheken oder Dienstprogramme in die Sprachen integriert?
Edit: Ich bin mir bewusst, dass this SO question eine gute Methode zum Umgang mit meiner Situation in Java erklärt, aber a) die Frage nach Netzwerksicherheit zwischen Bitbucket/Github und SourceTree ist anders und b) Ich fragte nach mehr Informationen über allgemeine am besten Praktiken über Sprachen, eher, dass JUST Besonderheiten über Java (obwohl der Link zur Verfügung gestellt war sehr hilfreich bei der Adressierung der Java-spezifischen Fall).
Öffentliches oder privates Netzwerk, Passwörter in Textdateien zu behalten ist eine schlechte Idee. –
Warum werden die Kennwörter in der Quellcodeverwaltung beibehalten? Klartext-Passwörter sind eigentlich keine schlechte Idee _per se_, aber sie allen zugänglich zu machen, die auf Ihren SCM zugreifen können. Die Frage erscheint etwas zu weit gefasst, weil Sie keine Informationen über die betreffende Anwendung geben. –
Die Antwort darauf ist einfach: Weil ich für eine kleine Firma mit nur einem Solo-Entwickler arbeite, und der Typ vor mir hat es so eingerichtet. Ich mag die Idee, die Passwörter in einer separaten (nicht-scm) Datei zu haben, wie von @Mike Nakis vorgeschlagen. Aber ich bin gerade dabei, zu versuchen, diese Software zu überholen, und ich denke, dass ich der Software im Allgemeinen eine Benutzerauthentifizierung hinzufügen werde, so dass meine aktuelle Situation kein Problem mehr darstellen sollte. Ich frage mich einfach diese Dinge für zukünftige Referenz. –