2017-04-23 1 views
0

HTML5-Code kann leicht durch "Element prüfen" oder aus "Quellen" abgerufen werden.Gibt es eine Möglichkeit, den Webanwendungscode vollständig zu verbergen?

Ich frage mich, ob es überhaupt einen Weg gibt, den Code einer Webanwendung auf der Clientseite vollständig aus dem Browser auszublenden.

Alle Sprachen sind willkommen, daher sind eingebettete Anwendungen (wie Java Applets) akzeptabel. Gibt es clevere Möglichkeiten, dieses Problem anzugehen?

+1

Back-End-Code ja. Frontend-Code-Nr. Es gibt jedoch Möglichkeiten, den Front-End-Code schwerer verständlich zu machen (Minimieren, Verschleiern usw.). –

Antwort

2

Vaadin

Mit einem serverseitigen orientierte Web-App Framework wie Vaadin wo Ihre Geschäftslogik nur auf dem Server vollständig in Java geschrieben lebt, während der Rahmen automatisch generiert das HTML, CSS, JavaScript, DOM, AJAX, und WebSocket-Code, der für die Darstellung im Webbrowser erforderlich ist, bietet Ihnen eine umfangreiche Maskierung Ihres kritischen Codes.

Jeder Benutzer wird in der Lage sein, das automatisch generierte HTML und JavaScript und ähnliches zu sehen, aber das wird nicht viel bedeuten.

Der Hacker wird diesen clientseitigen Code manipulieren können, aber es wird nicht viel tun. Zum Beispiel könnte ein Hacker das HTML/JavaScript ändern, indem er die Werte in einem Popup-Menü definiert, um ein anderes unbeabsichtigtes Element hinzuzufügen. Aber Ihr Java-Code auf dem Server kann nach unerwarteten Werten suchen und den Fehler behandeln oder eine Ausnahme auslösen.

Und Vaadin führt Integritätstests durch, um zu verifizieren, dass der Client und der Server "synchronisiert" bleiben. Das Hacken des clientseitigen Codes wird sie wahrscheinlich schnell aus dem Takt bringen.

1

Es ist nicht möglich, Frontend-Code vollständig zu verstecken, da der Browser des Benutzers in der Lage sein muss, den Code zu lesen, um ihn auszuführen. Dieses Problem ist nicht auf das Internet beschränkt. Sogar native Binärdateien können mit einer disassembler überprüft werden - wiederum muss die CPU des Benutzers in der Lage sein, den Code zu interpretieren, so dass ein ausreichend erfahrener Angreifer ihn auch interpretieren könnte.

Das heißt, Verschleierung Code kann es schwieriger zu lesen. JavaScript wird oft minimiert, bevor es in Produktion geht - hauptsächlich aus Performance-Gründen. Dies bietet auch ein grundlegendes Niveau der Verschleierung der Funktionalität und schützt vor weniger erfahrenen oder weniger motivierten Angreifern. Google's list of minifiy resources kann ein guter Anfang sein.

Verwandte Themen