Wie und Wann verwenden Sie Html-Codierung

Ich habe vor kurzem erfahren, dass ich nicht speichern, die html-codierte Daten in der Datenbank, aber ich sollte lieber die html-Codierung der Daten, die angezeigt wird auf dem Bildschirm für den Benutzer.
Keine große Sache, ich muss fix meine Datenbank-Einträge und machen einige änderungen am code.

Aber meine Frage ist, Wann sollte ich die html-Kodierung und -, wenn nicht sollte I.
Zum Beispiel, innerhalb einer html-Tabelle, Schreibe ich direkt aus der Datenbank in das innere HTML-Code einer Spalte. Ohne Codierung dies wäre gefährlich, ich bekomme.

Was ist, wenn der Wert einer textbox. Es scheint zu funktionieren, ohne html-Codierung des Wertes. Aber ich bin mir nicht sicher, warum. Dies ist, was die textbox so Aussehen:

<input type="textbox" value="xxx"/>

Aber wenn Sie den Wert auf: "/><p style="font-size: 100px;">testing hack</p>
Der html-Quelltext wird:

<input type="textbox" value=""/><p style="font-size: 100px;">testing hack</p>

Wird es gut Aussehen, wenn angezeigt, so dass der p-tag funktioniert nicht wie beabsichtigt durch den "hack".

Wird jeder das bekommen, was ich versuche zu Zielen an 🙂 ?
Wenn ich versuche, html-Codierung etwas, das ich auf eine textbox Wert, das Ergebnis wird angezeigt "&lt" und so weiter, das ist nicht das, was ich beabsichtigte.

Also kurz: Soll ich nur die html-Codierung Zeug legen, um das innerHtml des html-Steuerelemente, und nicht, wenn der Wert zum Beispiel für Textfelder?

  • Testen Sie den IE benutzen? IE manchmal entkommt Daten, die Sie an den server gesendet, wenn es im Dokument angezeigt wird.
  • Nein, ich Teste in Chrom.
  • Hast du wirklich Einblick in den Quelltext (STRG+U) oder hat man es in der "Elements" - tab der developer-tools, die manchmal nicht sagen, die ganze Geschichte?
  • Ich sah Sie an "Elements" - Registerkarte, die ich nicht sollte ich das erraten? Aber so oder so, ist es dann unneccesary html codieren Dinge thats gonna be in einem Attribut? Oder sollte ich die Methode, die Sie vorgeschlagen "HtmlAttributeEncode", und wenn ja, warum? Ist es wirklich notwendig?
  • Gut, sieht der unescaped in die HTML-Quelle zu?
  • Ahh. Jetzt sehe ich, was Sie sagen. In der Quelle wird der Wert wurde automatisch html kodiert, aber in firebug oder die Chrome-Elemente sieht es seltsam aus. Hm, so bedeutet dies, dass es keine Notwendigkeit, html-Codierung, die Dinge, die in den Attributen der html-Steuerelemente? Ich muss einfach tun, es auf Dinge, für die innerHTML-Kontrollen.. Richtig?
  • Nein! Nur, wenn Ihr server so konfiguriert wurde, dass auto-escape-Backslash (was passiert, bevor dein PHP-Skript bekommt die Daten, schauen in die Datenbank, es ist bereits geflohen ist) und Zitat der Woerter, die in der Regel führt zu furchtbar schlecht aussehende HTML-Seiten (zum Beispiel, wie sieht das aus? "Und er sagte: \'How do you do?\'") - deaktivieren Sie diese option und die Flucht es sich bei dieser Art von Flucht ist tatsächlich notwendig!
  • Aber die Daten werden nicht escaped in meiner Datenbank, ich bin dem einfügen genau so, wie Sie vom Benutzer eingegeben werden. Ich bin mit ASP.NET durch die Art und Weise. Die textbox sieht gut aus, wenn ich das nicht mit html codieren, aber ich bin mir nicht sicher, ob seine sicher, auch wenn es gut aussieht. Ich fange an zu glauben .NET automatisch html kodiert für das Attribut, wenn ich es.
  • Ach, sind Sie nicht einfügen wie in "strings verketten" aber wie in "verwenden einer Set-Methode, wurde für diese"? In diesem Fall ist alles ok, weil die Bibliothek vermutlich tut es für Sie.

InformationsquelleAutor Andreas | 2010-12-08
Schreibe einen Kommentar