Laden...

Sicheres Deaktivieren von Controls

Erstellt von mcpd vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.123 Views
M
mcpd Themenstarter:in
174 Beiträge seit 2009
vor 11 Jahren
Sicheres Deaktivieren von Controls

Hallo Leute,

habe eine Frage an Euch. Einige HTML-Controls habe ich auf meiner Web-Form
deaktiviert. D.h. ich habe die Eigenschaft "Disabled" auf disabled gesetzt. Somit habe ich dieses clientseitig getan. Nun möchte ich auf Nummer sicher gehen und dieses auch serverseitig tun, um zu verhindern, dass man im HTML-Code hackt.
Wie kann ich das machen? Danke für Eure Tipps.

Mfg
MCPD

M
mcpd Themenstarter:in
174 Beiträge seit 2009
vor 11 Jahren

Hat keiner eine Idee?

P
48 Beiträge seit 2005
vor 11 Jahren

Hallo,

sorge doch einfach serverseitig dafür, dass die Controls gar nicht erst in der Seite erscheinen.

Welche Technologie benutzt Du denn? ASP.NET Webforms oder MVC?

--
mfG.
Marcel Eckhoff

M
mcpd Themenstarter:in
174 Beiträge seit 2009
vor 11 Jahren

Hallo und danke für Deine Antwort.
Also ich benutze für TextBoxen HTML Input-TextBoxen. Diese werden dann in einer Code-Behind Datei reingerendert. Einige TextBoxen besitzen das Attribut ReadOnly bzw. Disabled. Nun möchte ich erreichen, dass diese Attribute auch serverseitig abgesichert sind. Denn man kann ja den gerenderten HTML-Code über den Browser mittels Aufruf des Entwicklertool verändern und somit auch die gesetzten Attribute. Deshalb möchte ich dieses auch serverseitig absichern. Hast Du da eine Idee?

Mfg
mcpd

16.842 Beiträge seit 2008
vor 11 Jahren

Also als aller erstes solltest Du nicht drängeln. Das schreckt ab. Eigentlich ein Grund nicht zu antworten. [Hinweis] Wie poste ich richtig? Punkt 7.

Punkt Zwei: Du musst viel abstrakter denken. Web-Anwendungen sind verbindungslos.
Eine Webanwendung weiß niemals, wann oder ob die nächste Seite jemals aufgerufen wird.

Du hast die Möglichkeit das ganze eigentlich nur in Sessions abzulegen.
Dann muss Dir aber auch bewusst sein, dass ein Anwender mehrere gleiche Seiten geöffnet haben könnte.

Es gibt unterschiedliche Wege: aber perfekt Absichern kann man sich bei Webanwendungen sowieso niemals.

P
48 Beiträge seit 2005
vor 11 Jahren

Was meinst Du mit "serverseitig abgesichert"?

Vielleicht solltest Du Dein Konzept noch einmal überdenken. Wenn ein Element nicht dargestellt werden soll, dann render es doch nicht erst hinein (einfache if-Abfrage im CodeBehind).

Wenn ein Input-Tag nur readonly sein darf, musst Du dafür sorgen, dass ein Speichern des Wertes dann auf dem Server nicht ausgeführt wird. Mit Manipulationen musst Du immer rechnen. Es kann Dir sogar passieren, dass jemand ein HTTP-POST an Deinen Webserver schickt, ohne dafür Deine gerenderte Seite zu benutzen. Da nützen Dir dann keine readonly-Attribute etwas.

Du musst also alles, was an Deine Webanwendung gesendet wird, äußerst mißtrauisch betrachten und darfst Dich nicht auf externe Absicherungen allein verlassen.

--
mfG.
Marcel Eckhoff

3.170 Beiträge seit 2006
vor 11 Jahren

Hallo,

Du hast die Möglichkeit das ganze eigentlich nur in Sessions abzulegen.
Dann muss Dir aber auch bewusst sein, dass ein Anwender mehrere gleiche Seiten geöffnet haben könnte.

Es kann Dir sogar passieren, dass jemand ein HTTP-POST an Deinen Webserver schickt, ohne dafür Deine gerenderte Seite zu benutzen.

Kann ich beides nur unterstützen.
Es bleibt Dir also gar nichts anderes übrig, als Dir serverseitig anhand eines Status in der Session zu merken, ob der Client einen bestimmten Wert überhaupt senden kann/darf. Dann kannst Du darauf biem nächten Request entsprechen reagieren und eine Fehlermeldung schicken, wenn Werte gepostet werden, die eigentlich aufgrund "disabled", "readonly", oder "gar nicht dargestellt" nicht möglich sein dürften.

Wichtiger Merksatz: Never trust the client

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca