XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   [PHP] Verschlüsselten Code aus Datenbank holen (http://xhtmlforum.de/showthread.php?t=42558)

Schneemann 23.10.2006 03:20

[PHP] Verschlüsselten Code aus Datenbank holen
 
Hi,

ich habe ein Textfeld und will PHP-Quelltext darüber in eine Datenbank speichern. Damit der Quelltext in dem Textfeld als solcher dargestellt werden kann, muss ich Zeichen wie < > zu &gt; und &lt; umwandeln. Später soll der Quelltext aus der datenbank ausgelesen und ausgeführt werden können.

Hier meine Frage: Wie geht das?

Ich würde den Quelltext vor dem speichern mit htmlentities umwandeln? Wenn ich diesen Quelltext aber auslese, wären ja die HTML-Zeichen umgewandelt und somit nicht ausführbar?

Wie kann ich nun erreichen, dass ich PHP-Quelltext kodiert ablege aber wieder ausführbar zurückholen kann? Muss ich dazu html_entity_decode verwenden oder geht das nur für HTML-Code?

Gumbo 23.10.2006 09:56

Speichere die Daten einfach in ihrer Rohform in der Datenbank und wandle die HTML-Schlüsselzeichen erst zur Ausgabe um.

Schneemann 23.10.2006 10:38

Wieso noch umwandeln, wenn die Daten in Rohform, also <?php echo ... ?> in der Datenbank liegen würden?

Ich will sie nicht nur speichern und als Website ausgeben, sondern auch wieder in einem Text-Eingabefeld anzeigen, um sie erneut zu bearbeiten? Wenn man da einen Fehler macht beim Quellcode, würde es das Textfeld zerschiessen?

Wasili 23.10.2006 18:51

Zitat:

Zitat von Schneemann (Beitrag 312245)
Wieso noch umwandeln, wenn die Daten in Rohform, also <?php echo ... ?> in der Datenbank liegen würden?

Ich will sie nicht nur speichern und als Website ausgeben, sondern auch wieder in einem Text-Eingabefeld anzeigen, um sie erneut zu bearbeiten? Wenn man da einen Fehler macht beim Quellcode, würde es das Textfeld zerschiessen?

Speicher sie doch einfach unkodiert und kodiere die Sonderzeichen direkt vor der Ausgabe? Geht doch einfacher? oO
Wie Gumba gesagt hat?

Oder ansonsten halt mit str_replace ", ' und & umwandeln. &quot; &wasweissich; &amp;

netspy 23.10.2006 21:14

Zitat:

Zitat von Schneemann (Beitrag 312245)
Wieso noch umwandeln, wenn die Daten in Rohform, also <?php echo ... ?> in der Datenbank liegen würden?

weil ...

Zitat:

Zitat von Schneemann (Beitrag 312245)
Wenn man da einen Fehler macht beim Quellcode, würde es das Textfeld zerschiessen?

Solche Daten sollten immer so gespeichert werden, dass sie sich problemlos in das gewünschten Ausgabeformat überführen lassen.

Mario

vistahr 24.10.2006 19:06

zum einen solltest du aufpassen wenn du so etwas machst, da du so jedem die Möglichkeit bietes Scripte auf deinem Server auszuführen.
Dies kann soweit führen das jmd. dieses Fenster als Angriffsfläche benutzt und im schlimmsten Fall den Server hackt oder zum abstürzen bringt.
Nur als Sicherheitsinfo vorweg ;)

Ich denke eval() ist die Funktion die du suchst.

Zitat:

Achtung: Der Funktion eval() darf man nur absolut vertrauenswürdigen Code übergeben; Code aus unbekannter Quelle kann äußerst gefährliche Befehle wie z.B. unlink($_SERVER['PHP_SELF']), mysql_drop_db() oder system() enthalten und großen Schaden anrichten.

die Funktion highlight_string() könnte für dich vll. auch interessant sein, ich weiß ja nicht was du genau vorhast.



Und denke dran, eval is evil :X
PmWiki | Php / MysqlUrlWrapper
Damit könntest du es umgehen eval einzusetzen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:29 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023