Allgemeine Frage

thor_norsk

Bekanntes Mitglied
Guten Morgen,
wenn ich mein Code auf den Server ablege, können die Leute nur den HTML-Code einsehen oder auch CSS & JavaScript bzw. Angular,...?
Kann man auch Alles verstecken bzw. irgendwie verhindern, dass niemand den Code klauen kann ?
Danke!
 

Marinek

Bekanntes Mitglied
Hallo,

Ich gehe davon aus, dass es sich um eine Single Page Application in Angular handelt.

Diese wird im Client des Nutzers ausgeführt. Daher muss dieser den gesamten Quellcode und alle dazugehörigen Module erhalten.

Kurze Antwort: Man kann mithin HTML und CSS sowieso nicht aber auch die JS Inhalte nicht dem Client vorenthalten.

Lange Antwort:

Üblicherweise wird der Quellcode minified. Die wiederverwendung also das bloße copy and Paste wird dadurch erschwert.

Weiter wird man das worauf es ankommt in einer Art Server Anwendung als Logik implementiert. Da kommt man ohne weiteres nicht dran.

Es gäbe auch die Möglichkeit einen Obfuscater zusätzlich einzusetzen, der den Quellcode möglichst unleserlich macht.

Aber bedenke: Der Client tauscht Daten mit dem Server aus. Dies kann ich als Nutzer und Angreifer vollständig sehen. Alles was im Client als validierung oder Einschränkung implementiert ist, ist nutzlos. Der Client muss in dem Sinne als unvertraulich angesehen werden und der Server muss jede Anfrage prüfen.

Gruss

Martin
 

thor_norsk

Bekanntes Mitglied
Vielen Dank.
Man könnte doch sein Code in externe Dateien packen und in Html einbinden, dann sehen die Leute, dass z.B. CSS und JavaScript eingebunden würde, aber der Code ist für Client unsichtbar oder ??? Ich habe mir verschiedene Webseiten angeschaut und mir den Seitenquelltext anzeigen lassen, Html Code kann man lesen wie ein offenes Buch aber die JavaScript Klassen und CSS kann nicht sehen bzw. den Inhalt nicht .
 

KonradN

Super-Moderator
Mitarbeiter
mir den Seitenquelltext anzeigen lassen, Html Code kann man lesen wie ein offenes Buch aber die JavaScript Klassen und CSS kann nicht sehen bzw. den Inhalt nicht .
Du schaust einfach falsch. Du darfst nicht über Seitenquelltext gehen sondern über die Entwicklungstools (oder wie das bei den jeweiligen Browsern genannt wird). Dann siehst Du alles, was vom Browser geladen wurde incl. Quelle.
 

LimDul

Top Contributor
Beispiel für Chrome:
1721300167999.png

Javascript Code, der im Browser ausgeführt wird ist immer für den Anwender sichtbar. Genau das gleiche gilt für CSS.
 

mihe7

Top Contributor
Du kannst ggf. Teile der Anwendung auch als WebAssembly (WASM) ausliefern. Das dürfte so ziemlich das Höchste der Gefühle sein, was Du an "Sicherheit gegen Quellcodeklau" tun kannst, sofern der ausführbare Code an den Client übermitelt wird. Aber natürlich ist auch das nur eine scheinbare Sicherheit: wer will, kommt immer an irgendeine Form von Quellcode ran, sofern er nur ein Executable hat.
 

Oneixee5

Top Contributor
Was ist denn das Problem daran, dass jemand deinen HTML-, JS- oder CSS-Code sehen kann? Hast du Passwörter oder andere Geheimnisse in dem Code? Oder ist er so schlecht, dass du ihn lieber verheimlichen willst? Dann solltest du, in beiden Fällen, den Code erst gar nicht zugänglich machen.
Was ist denn eigentlich sichtbar? Dein Angular-Projekt ist nicht einsehbar, weder Angular-Code noch Typescript. Für den Client ist das 'compilierte' JavaScript und das "compilierte" CSS sichtbar. Der HTML-Code wird dynamisch generiert. Die originale index.html enthält nur ein paar boilerplate Zeilen.
Man kann also sehen, dass es ein paar Textfelder etc. gibt, ein paar Bilder usw. da ist nichts schützenswertes dabei. Jeder kann so etwas bauen und der Aufwand für Rückentwicklung ist höher als der Nutzen.
Das Internet ist voll von kostenlosem Wissen, Tutorials, Foren und Software. Das alles nutzt du doch auch. Wenn es darum geht dein Wissen zu verstecken, solltest du selbst für alles kostenlose Wissen, was du je erworben hast, bezahlen.
Natürlich muss man selbst auch von irgend etwas leben. Dein Business ist von der Sichtbarkeit im Browser aber gar nicht betroffen. Denn dieser Code und die Daten liegen in deinen Servern - welche du natürlich schützen musst. Daten und Leistungen gibst du über die Webanwendung nur an deine Nutzer weiter. Möglicherweise gegen Bezahlung und/oder nur an einen einschränkten Nutzerkreis.
 

thor_norsk

Bekanntes Mitglied
Danke! Ich habe festgestellt ich brauche noch bisschen Zeit für Angular, da ich noch CSS , JavaScript lerne, TypeScript habe ich auch gelernt. Ich muss nach und nach alle meine Fragen bzw. die Sachen die ich noch nicht verstanden habe beseitigen. Ich denke die 2 Projekte mit Html& CSS und JavaScript werden mir erst Mal gut tuen, praktische Erfahrung zu sammeln.
Wenn ich mit Html, CSS, TypeScript, JavaScript fertig bin dann bin Fit für Angular und React.
 

thor_norsk

Bekanntes Mitglied
Ich möchte nicht mein Code verstecken sondern schützen!!! Es gibt leider Menschen die nicht ehrlich sind und andere Schaden wollen wie Hacker.
Ich habe nicht besonders zur Zeit für die Hacker, es ging mir um technische Möglichkeiten. Angular ist eine tolle Sache, Objektorientierte Programmiersprachen wie Java oder TypScript bringen viele Vorteile mit sich.
Danke für Alles und bis bald.
 

Marinek

Bekanntes Mitglied
Ich möchte dazu sehr theoretische aber für gerade solche Fälle dringend angebrachten Punkt anbringen:


Naiv implementiere Software, macht oft so solche Fehler.

Speziell für JavaScript basierte Single Page Applikationen: Ich brauche deinen Quellcode der Angular App nicht. Ich kann Replay Angriffe alleine mit den Browser-Tools machen, wenn nicht weitere Schutzmechanismen existieren.

Siehe auch OWASP.

Ihmo sind das grundlegende Themen, aber zum lernen nicht gedacht. Also in der Lernphase der Grundlagen e.g. TypeScript oder CSS, HTML irrelevant.
 

mihe7

Top Contributor
Kann man auch Alles verstecken bzw. irgendwie verhindern, dass niemand den Code klauen kann ?
Ich möchte nicht mein Code verstecken sondern schützen!!!
Es gibt leider Menschen die nicht ehrlich sind und andere Schaden wollen wie Hacker.
Du schreibst in Rätseln.

Also nochmal von vorne:
  1. Es gibt keinen 100 %-igen Schutz
  2. Daraus folgt: man kann es einem Angreifer nur so schwer wie möglich machen.
  3. Daraus folgt: man muss abwägen, welchen Aufwand man betreiben möchte und was man dafür bekommt.
Da stellt sich zunächst einmal die Frage, wovor und vor wem Du welchen Code schützen willst. Wenn Du sagst, dass Du den UI-Code für den Browser vor unerlaubtem Kopieren schützen willst, dann muss man ganz klar sagen, dass das ein Widerspruch in sich ist. Der Code soll ja gerade kopiert werden, nämlich auf den Client-Computer, damit der Browser den Code ausführen kann.

Wenn Du sagst: oh, ich möchte meinen Code vor neugierigen Blicken anderer Entwickler schützen, dann kann man mit Obfuskatoren arbeiten. Natürlich ist das kein wirklicher Schutz, aber Punkt 3 gilt auch für den "Angreifer" und nur damit ich weiß, wie Du dieses tolle Slidemenü implementiert hast, setze ich mich jetzt nicht zig Stunden hin, um den verschleierten bzw. minimierten Code zu entziffern. Da bitte ich doch einfach ChatGPT, mir entsprechenden Code zu liefern.

Wenn Du aber sagst: Mooooment, ich habe hier Algorithmen entwickelt, die sind so gut, dass der Anwender dafür Geld ausgibt, dann würde ich sagen, dass der betreffende Code schlicht nichts im Frontend zu suchen hat. Schieb das Zeug auf einen Server ins Backend, dann wird der Client/Anwender den Code niemals in irgendeiner Form zu Gesicht bekommen und für "richtige" Angreifer wird es maximal schwierig, denn jetzt müsste er sich erst einmal Zugriff auf Deinen Server verschaffen.
 

thor_norsk

Bekanntes Mitglied
Danke! Ich war mit meinen Gedanken in Java mit Spring Boot und Spring Security. Danke für den Tipp, ich versuche momentan meine Unterlagen zu verstehen. Ich bin echt überrascht, was man Alles mit HTML, CSS machen kann. ich habe mir mehrere Projekte gemacht, und wollte die später Online testen, und möchte nicht, dass jemand der Langeweile hat Alles sabotiert, dann ist der ganze Spaß weg. Also nichts besonders.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Eigene Wiki-Seite (Plattform-frage..) HTML / CSS 8
Shizmo iframe Frage HTML / CSS 0

Ähnliche Java Themen

Neue Themen


Oben