Diskussion:Hartkodiert

Letzter Kommentar: vor 5 Monaten von 93.229.164.202 in Abschnitt Zweifel an Aussagen

Bei hartkodierten Werten kann es sich um Konfigurationsdaten wie Benutzername und Passwort (sog. Credentials) oder URIs handeln. Bearbeiten

Sind hardcodierte Credentials nicht eher ein Anti Pattern? Sie werden dadurch einmal für alle Ewigkeit festgeschrieben und können - einmal geleakt - nur sehr umständlich geändert werden. --2A02:8109:EC0:C824:C81F:33C3:E959:1FA4 11:31, 19. Aug. 2021 (CEST)Beantworten

Zweifel an Aussagen Bearbeiten

Hart kodierte Zeichenketten sind in bestimmten Fällen unverschlüsselt lesbar, wenn man die Programmdatei (exe / bin) in einem Texteditor öffnet. Aus Sicht der Sicherheit stellt das keinen Vorteil, sondern einen großen Nachteil dar. 94.31.99.158 02:07, 22. Jan. 2023 (CET)Beantworten

Ja, richtig, wenn die Zeichenketten unverschlüsselt vorliegen, dann kann man sie mit einem Hex-Editor leicht auslesen und auch ändern. Ein normaler Texteditor ist weniger gut dafür geeignet. Es ist aber auch möglich, die Zeichenketten zu verschleiern und bspw. zur Laufzeit aus Algorithmen mit hartkodierten Inputwerten zu bilden. Dadurch wird der Zugang zu den Daten für Nichtprogrammierer erschwert, aber für entsprechend qualifizierte Personen nicht unmöglich gemacht. Grundsätzlich lassen sich alle Daten lesen, die in einer Binärdatei stecken, solange auf die Binärdatei mit beliebigen Tools zugegriffen werden kann. Damit ist also bestenfalls eine Verschleierung möglich, die unter das Thema Obfuskation sowie Security through obscurity fällt. --93.229.164.202 06:21, 11. Nov. 2023 (CET)Beantworten

Was für ein Unsinn! Bearbeiten

Wer schreibt denn so einen Unsinn?

An diesem Beispiel wird auch ein Dilemma deutlich: eine Software kann nur bis zu einem gewissen Grad auf hartkodierte Angaben verzichten. Um die URL dynamisch zu ermitteln, müsste der Hersteller einen Dienst z. B. in Form eines Webservices bereitstellen, der dem Programm auf Anfrage die aktuelle Homepage-URL mitteilt. In diesem Fall müsste allerdings die URL dieses Webservices wiederum selbst hartkodiert werden.

Hartkodiert ist ein Text nur dann, wenn er Teil des Quelltextes ist. Um den Text dynamisch zur Laufzeit in das Programm einzufügen, braucht man aber keine URL und auch keinen Webservice, es genügt eine Textdatei oder besser eine andere strukturierte Datei (z.B. JSON, XML) die der ausführbaren Binärdatei mitgeliefert wird. Auch ein Beilegen als Datenbank in bspw. einem gängigen Datenbankformat ist möglich. Dieser Text ist dann nicht mehr hartkodiert, da er sich mit einem Texteditor, Datenbanktools usw. leicht von praktisch jedermann ohne Programmierkenntnisse ändern lässt und erst zur Laufzeit des Programms geladen wird.

Ein typischer Anwendungsfall sind bspw. Sprachübersetzungen. Will man ein Programm mehrsprachig ausliefern, dann entkoppelt man den Quellcode von dem Text, so dass der Text von nicht Programmierern mit guten Sprachkenntnissen in die entsprechenden Sprachen übersetzt werden kann. --93.229.164.202 06:02, 11. Nov. 2023 (CET)Beantworten