JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 35. So halten Sie die GitHub-Sicherheitsr...

Kaffeepause Nr. 35. So halten Sie die GitHub-Sicherheitsregeln ein. Nützliche Tipps zum schnellen Debuggen von Java-Code

Veröffentlicht in der Gruppe Random-DE

So bleiben Sie auf GitHub sicher

Quelle: DZone GitHub gilt zu Recht als die beliebteste Teamentwicklungsplattform. Laut Daten vom vergangenen Herbst nutzten mehr als 40 Millionen Programmierer diesen Dienst. Und da die meisten von ihnen Open Source zur Erstellung von Software verwenden, sollte die Sicherheit bei der Arbeit auf Github für Sie oberste Priorität haben. Die Wiederverwendung von Code erhöht das Risiko der Verbreitung von Schwachstellen. Das bedeutet, dass jeder GitHub-Benutzer der Schaffung einer sicheren Entwicklungsumgebung höchste Aufmerksamkeit widmen sollte. Kaffeepause Nr. 35.  So halten Sie die GitHub-Sicherheitsregeln ein.  Nützliche Tipps zum schnellen Debuggen von Java-Code – 1Es gibt 8 Regeln, die Sie befolgen müssen, um Ihren GitHub-Code sicher zu halten.

Sorgen Sie für eine Zugangskontrolle

Die Zugriffskontrolle ist eine der besten Möglichkeiten, die Sicherheit nicht nur auf GitHub, sondern in jeder anderen Umgebung zu verbessern, in der Codeschutz erforderlich ist. GitHub bietet mehrere Möglichkeiten, Risiken bei Ihrer Arbeit zu reduzieren. Machen Sie es sich zunächst zur Praxis, die geringsten Rechte zu gewähren – geben Sie Repository-Benutzern nur die Berechtigungen, die sie für ihre Arbeit benötigen. Es gibt andere Zugriffskontrollmethoden, die Sie befolgen sollten:
  • Beschränken Sie die Erstellung von Repositories, um zu verhindern, dass Benutzer Informationen über die Organisation in öffentlichen Repositories preisgeben.
  • Aktivieren Sie Zweigschutz und Statusprüfungen, damit Benutzer Commits zusammenführen oder Zweige sicher verwalten können.
  • Erlauben oder deaktivieren Sie das Forken privater Repositorys, um sicherzustellen, dass Benutzer Ihren Code nicht offenlegen oder mit anderen teilen;
  • den Zugriff für alle inaktiven Benutzer widerrufen, die nicht mehr Mitglieder Ihrer Community oder Mitarbeiter des Unternehmens sind;
  • Überprüfen Sie regelmäßig die Zugriffsrechte auf Ihre Projekte auf GitHub;
  • Stellen Sie sicher, dass Benutzer den GitHub-Kontozugriff oder die Passwörter nicht mit anderen teilen.
  • Stellen Sie sicher, dass jeder Repository-Benutzer in seinem Konto die Zwei-Faktor-Authentifizierung verwendet;
  • Ändern Sie persönliche Zugriffstoken und SSH-Schlüssel regelmäßig.

Speichern Sie niemals Zugangsdaten in Ihren GitHub-Dateien

Das Durchsickern von Zugriffsinformationen auf Ihr GitHub-Repository über Code, Konfigurationsdateien oder Commit-Nachrichten kann für Angriffe genutzt werden. Um zu verhindern, dass sensible Daten zu Ihrem Repository hinzugefügt werden, verwenden Sie Zugriffskontrolltools wie git-secrets oder vault . Diese Tools scannen Ihre Codebasis und ändern den Zugriff, wenn vertrauliche Informationen in Ihrem Code oder Ihren Konfigurationsdateien gefunden werden. Wenn Sie sensible Informationen in Ihrem GitHub-Repository finden, sollten Sie diese sofort löschen. Da GitHub jedoch einen Verlauf aller Commits in Ihrem Repository führt, reicht das Löschen von Daten allein nicht aus. Sie müssen Dateien aus Ihrem GitHub-Repository-Verlauf löschen. Ein wichtiger Schritt zur Verbesserung der Sicherheit wird der Ersatz aller bisher öffentlich zugänglichen Passwörter und Token sein.

Aktivieren Sie Warnungen für anfällige Abhängigkeiten

Da GitHub-Benutzer an mehr Projekten arbeiten, wird es immer schwieriger, die wachsende Anzahl abhängiger Objekte zu kontrollieren. Glücklicherweise bietet GitHub automatische Warnungen für anfällige Abhängigkeiten im Repository. Diese Warnungen basieren auf der National Vulnerability Database (NVD), GitHub Security Advisories und der WhiteSource-Schwachstellendatenbank, die mehr als 200 Programmiersprachen unterstützt. GitHub-Benachrichtigungen machen die Verwendung von Open-Source-Bibliotheken einfacher und sicherer.

Überprüfen Sie die von GitHub hinzugefügten Apps

Der GitHub-Marktplatz enthält Hunderte von Anwendungen, die von Drittentwicklern und -unternehmen geschrieben wurden. Daher ist es wichtig, jede Anwendung, die Sie Ihrem Repository hinzufügen, sorgfältig zu prüfen. Befolgen Sie bei der Installation von Anwendungen vom GitHub Marketplace die folgenden Richtlinien:
  • Setzen Sie das Prinzip der geringsten Privilegien durch. Geben Sie Anwendungen niemals mehr Zugriffsrechte, als sie benötigen.
  • Hinterfragen Sie immer die von einer Anwendung angeforderten Zugriffsrechte oder Berechtigungen. Denken Sie an den Schaden, den dies bei dieser Zugriffsebene verursachen könnte.
  • Stellen Sie sicher, dass das Unternehmen oder der App-Entwickler tatsächlich existiert, bevor Sie ihm Zugriff auf Ihr GitHub-Repository gewähren.
  • Überprüfen Sie die Funktionalität und Sicherheit der Anwendung. Wenn es Schwachstellen enthält, können Sie Opfer eines Hackerangriffs werden;
Die Sicherheit einer Anwendung wird anhand ihres schwächsten Teils beurteilt. Dies gilt auch für GitHub-Repositories. Bevor Sie also einer App Zugriff auf Ihren Speicher gewähren, stellen Sie sicher, dass Sie ihr vertrauen und dass sie der von ihr angeforderten Zugriffsebene entspricht.

Überprüfen Sie den gesamten von GitHub importierten Code

Entwickler verwenden häufig den Code anderer Leute. Führen Sie jedes Mal, wenn Sie einen Teil des Codes einer anderen Person in Ihr Projekt kopieren, eine vollständige Überprüfung durch. Dies mag vor allem bei kleinen Projekten wie Zeitverschwendung erscheinen, aber es besteht die Möglichkeit, dass durch die Nichtbeachtung dieser Regel eine Schwachstelle in Ihrem Repository entsteht. Ein weiteres Risiko, das mit importiertem Code verbunden ist, besteht darin, dass dieser vertrauliche Informationen wie Zugangsdaten enthalten kann. Werden sie in GitHub-Dateien gespeichert, entsteht ein weiteres Sicherheitsrisiko. Eine Prüfung des Codes vor dem Kopieren hilft dabei, solche Lücken zu erkennen. Gehen Sie nicht davon aus, dass der Code einer anderen Person sicher ist, weil er sich in einem privaten Repository befindet. Es könnte Ihrer Codebasis sehr gut schaden.

Nutzen Sie die automatische statische Quellcode-Analyse für Ihre Repositories

Es gibt mehrere Tools von Drittanbietern, mit denen Sie Ihr Repository auf Schwachstellen analysieren können. Eines davon ist WhiteSource Bolt , ein kostenloses Tool vom GitHub Marketplace. WhiteSource Bolt durchsucht Ihre Repositorys nach Schwachstellen im gesamten offengelegten Code. Darüber hinaus werden detaillierte Informationen zu Schwachstellen bereitgestellt und Abhilfemaßnahmen vorgeschlagen.

Verwenden Sie den GitHub-Plan, der Ihren Anforderungen entspricht

Viele Unternehmen haben Richtlinien, die Entwickler daran hindern, Code auf Plattformen wie GitHub zu veröffentlichen. Diese Einschränkungen kommen besonders häufig in Regierungsbehörden und Finanzinstituten vor. Wenn Sie in einer stark regulierten Umgebung arbeiten, verwenden Sie GitHub Enterprise , einen Unternehmensplan, der es Ihnen ermöglicht, Repositorys auf einem lokalen Server zu hosten. Dies bietet ein höheres Maß an Sicherheit, da die Entwickler des Unternehmens Zugriff auf alle Projekte haben, ohne sich um unbefugte GitHub-Benutzer sorgen zu müssen.

Befolgen Sie in Ihren Projekten eine umfassende Sicherheitsrichtlinie

Sicherheit ist eine kollektive Verantwortung. Wenn Sie im Team arbeiten, ist es wichtig, Sicherheitsregeln festzulegen, die alle Beteiligten befolgen müssen. Idealerweise sollten Sie die Cybersicherheits- und Entwicklungsteams während der Planungsphase zusammenbringen, um sicherzustellen, dass sie synchron arbeiten. Dies erleichtert die Gewährleistung des Schutzes während des Entwicklungsprozesses. Wenn eines Ihrer Teammitglieder bei der Speicherung von Passwörtern oder anderen vertraulichen Informationen nachlässig ist, kann dies das gesamte Repository gefährden. Um dies zu vermeiden, dokumentieren Sie klar und deutlich das Sicherheitsverfahren, das alle Ihre Kollegen befolgen müssen.

Abschluss

Das Sichern Ihres Codes auf GitHub ist einfach. Sie müssen lediglich eine ordnungsgemäße Zugriffskontrolle sicherstellen und dabei die integrierten Sicherheitsfunktionen von GitHub nutzen. Wenn Sie an maximalem Schutz interessiert sind, integrieren Sie zusätzliche Tools, die die Codesicherheit in allen Phasen der Entwicklung erhöhen. Wir empfehlen außerdem, die Abschnitte „GitHub Security for Business“ und „Free Users“ der Dokumentation zu lesen . Auf diese Weise erhalten Sie zusätzliche Informationen zur Codesicherheit und zum Schutz.

Nützliche Tipps zum schnellen Debuggen von Java-Code

Quelle: Hackernoon Neben dem Schreiben von effizientem Code gehört die Verbesserung des Debuggens zu den nützlichsten Dingen, die Sie tun können, um Ihr Leben als Java-Entwickler einfacher zu machen. Dies ist besonders wichtig unter modernen Softwareentwicklungsbedingungen, wo sich die Softwarewelt aktiv in Richtung verteilter Architekturen und asynchronem Code bewegt. Kaffeepause Nr. 35.  So halten Sie die GitHub-Sicherheitsregeln ein.  Nützliche Tipps zum schnellen Debuggen von Java-Code - 2Während Softwarefehler unvermeidlich sind, wird es in komplexen Builds immer schwieriger, sie zu erkennen und zu beheben. Und wenn man in die Phase der Produktfreigabe übergeht, wird der Debugging-Prozess zu einem noch ernsteren Problem. Leider lässt sich dies nicht vermeiden – ein Debuggen ist erforderlich. Um Ihnen zu helfen, habe ich beschlossen, einige nützliche Tipps zum Debuggen von Java-Anwendungen in verschiedenen Entwicklungsstadien zu geben.

Verwenden Sie Kontrollpunkte

Beginnen wir mit Haltepunkten, einem offensichtlichen, aber sehr wichtigen Punkt, der jedem Debugging-Prozess zugrunde liegt. Mit Prüfpunkten können Sie die Ausführung einer Anwendung stoppen, um den Status des Programms zu analysieren und herauszufinden, warum der Code nicht ordnungsgemäß funktioniert. Jeder Debugger bietet mehrere Haltepunktoptionen, darunter bedingte Haltepunkte, Ausnahmehaltepunkte, Überwachungspunkte und Ablaufverfolgungspunkte. Wenn Sie lernen, wie und wann Sie verschiedene Arten von Haltepunkten verwenden, kann der Debugging-Prozess reibungsloser verlaufen. Erwähnenswert ist, dass einige moderne Tools Checkpoints unterstützen, ohne die Anwendung zu unterbrechen. Dadurch ist es möglich, Punkte in Ihrem Code zu setzen und Debugging-Daten zu sammeln, ohne die Programmausführung zu stoppen.

Logische Struktur aufzeigen

Die Funktion „Logische Struktur anzeigen“ ist sehr nützlich, wenn Inhalte in Java-Klassen überwacht werden. Wenn diese Funktion aktiviert ist, zeigt die Variablenliste ein Array an, was im Debugging-Kontext viel nützlicher ist. Dies ist sehr praktisch, insbesondere wenn Ihr Code keine toString()-Methoden für Objekte enthält. Mithilfe von Variablenansichten können Sie die Werte Ihrer Variablen während des Debuggens auch direkt ändern. Dadurch kann eine erhebliche Zeitersparnis erzielt werden, da die Debugging-Sitzung nicht mit geänderten Eingabedaten neu gestartet werden muss.

Lernen Sie, in der Codebasis zu navigieren

Jeder Java-Debugger kann mehrere Funktionen verwenden, mit denen Sie beim Debuggen durch verschiedene Codeabschnitte navigieren können. Einige davon umfassen „Run to Line“, „Step Over“, „Step In“ und „Step In“. Ziehen Sie darüber hinaus zwei weitere Optionen in Betracht:
  1. Drop to Frame – Diese Funktion wird verwendet, um zu einem Punkt in Ihrem Stapelrahmen zurückzukehren. Wenn Sie einen Punkt verpasst haben und zurückgehen müssen, verwenden Sie einfach die Funktion „Auf Frame verschieben“.
  2. Schrittfilterung – ermöglicht es Ihnen, bestimmte Pakete während des Debuggens zu überspringen. Sie müssen nicht durch alle Klassen im JDK-System navigieren, wenn Sie einfach die nicht benötigten Typen herausfiltern können.
Um die Geschwindigkeit Ihrer Code-Navigation zu verbessern, müssen Sie die Funktionstastenkombinationen beherrschen:
  • F5 – für „eintreten“.
  • F6 – für „übersteigen“.
  • F7 – für „Schrittrücklauf“.
  • F8 – um zum nächsten Kontrollpunkt zu laufen.
Obwohl die Hotkeys zwischen den IDEs unterschiedlich sein können, erspart es Ihnen, wenn Sie sie sich merken, häufiger die Maus zu benutzen.

Lernen Sie, Deadlocks zu vermeiden

Ein Deadlock-Szenario tritt auf, wenn zwei oder mehr Threads blockieren, nachdem sie eine zirkuläre Abhängigkeit gebildet haben. Da normalerweise eine Reihe von Java-Threads auf eine andere Ressource warten, kann dies dazu führen, dass die Anwendung vollständig gestoppt wird. Das Debuggen von Jstack-Deadlocks kann ziemlich schwierig sein, da sie keine Problemindikatoren wie Speicherspitzen, CPU-Auslastung usw. anzeigen. Es gibt verschiedene Ansätze zur Fehlerbehebung bei einem Jstack-Deadlock. Erstens können Sie mehrere Thread-Dumps in Ihrem JVM-Cluster erfassen, um Thread-Muster abzuleiten. In diesem Fall reicht die Analyse eines statischen Thread-Dumps möglicherweise nicht aus. Abhängig von der Größe des JVM-Clusters kann es erforderlich sein, mehrere Dateien zu durchsuchen, was oft ein arbeitsintensiver und zeitaufwändiger Prozess ist. Am besten verwenden Sie eine Anwendungsüberwachungslösung, die die JV-Schicht und die Codeschicht bereitstellt, die zum Isolieren von Thread-Deadlocks erforderlich sind. Glücklicherweise gibt es innovative Tools, die in dieser Situation helfen können, darunter einige moderne Debugger sowie kommerzielle APM-Tools. Diese Tools erhöhen die Transparenz Ihres Java-Codes und identifizieren gleichzeitig Fehler.

Nutzen Sie die Leistungsfähigkeit von Produktions-Debuggern

Der typische Debugging-Prozess, den die meisten Entwickler normalerweise befolgen, besteht darin, die Umgebung zu replizieren, den Fehler zu isolieren und ihn dann zu beheben. Dies gilt jedoch nicht in allen Fällen. In diesem Fall sollte der Entwickler leistungsstarke Produktionsdebugger verwenden. Rookout ist ein solches Tool. Es ermöglicht Ihnen, Debugging-Daten von Anwendungen zu sammeln, ohne deren Status oder Flusskontrolle zu ändern. Mit Rookout können Sie unterbrechungsfreie Haltepunkte festlegen, um einen vollständigen Stack-Trace zu erhalten, Live-Variablen oder andere zum Debuggen benötigte Anwendungsdaten zu erfassen. Anstatt also Überwachungslösungen mit hohem Overhead für das Produktions-Debugging zu verwenden, verwenden Sie einfach Rookout, das alles bietet, was Sie zum Debuggen von Anwendungen benötigen, ohne dass Sie neuen Code bereitstellen oder schreiben müssen. Unabhängig davon, ob Sie an serverseitigen oder Containeranwendungen arbeiten, ist Rookout eine großartige Ergänzung Ihres Debugging-Arsenals.

Vergessen Sie nicht das Remote-Debugging

Die überwiegende Mehrheit der IDEs wie NetBeans, Eclipse, IntelliJ IDEA und Visual Studio unterstützt Remote-Debugging, eine Technik, mit der Sie Java-Code reparieren können, der sich auf einem anderen Computer befindet. Dies ist besonders wichtig in Situationen, in denen Ihr System das lokale Debuggen nicht unterstützt oder wenn Ihr Computer nicht über genügend Ressourcen zum Ausführen von Debuggern verfügt. Um Remote-Debugging durchzuführen, müssen Sie Konfigurationsinformationen bereitstellen, die der Debugger zum Herstellen einer Verbindung mit dem Remote-Port verwendet. Remote-Debugging ist auch bei der Fehlerbehebung nützlich, wenn externe Entwickler eine Verbindung zur Anwendung herstellen müssen, um einen Fehler zu beheben. Bedenken Sie, dass das Debuggen manchmal länger dauern kann als die eigentliche Implementierung. Wenn Sie Ihre Java-Debugging-Fähigkeiten verfeinern, achten Sie stets darauf, sauberen, effizienten Code zu schreiben – das zahlt sich aus, wenn es um die Behebung von Fehlern geht. Wenn Sie das Gefühl haben, dass die Dinge außer Kontrolle geraten, ist es immer eine gute Idee, eine Pause einzulegen. Ein Fehler ist ein Programmierrätsel, und viele Programmierer haben es geschafft, dieses Problem zu lösen, ohne auch nur in die Nähe ihres Computers zu kommen. Verwenden Sie die oben beschriebenen Strategien, um Java-Debugging-Probleme zu beseitigen. Viel Spaß beim Codieren!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION