Diskussion:Hartkodiert
Bei hartkodierten Werten kann es sich um Konfigurationsdaten wie Benutzername und Passwort (sog. Credentials) oder URIs handeln.
[Quelltext 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)
Zweifel an Aussagen
[Quelltext 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)
- 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)
Was für ein Unsinn!
[Quelltext 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)