
Chris
Ich habe ein Dropdown-Menü auf einer Webseite, das kaputt geht, wenn die Wertzeichenfolge ein Zitat enthält.
Der Wert ist "asd
aber im DOM erscheint es immer als leerer String.
Ich habe auf jede mir bekannte Weise versucht, die Zeichenfolge richtig zu entkommen, aber ohne Erfolg.
<option value=""asd">test</option>
<option value="\"asd">test</option>
<option value=""asd">test</option>
<option value=""asd">test</option>
Wie rendere ich dies auf der Seite, damit die Postback-Nachricht den richtigen Wert enthält?

Andi E
"
ist der richtige Weg, der dritte Ihrer Tests:
<option value=""asd">test</option>
Sie können sehen, wie dies unten oder auf funktioniert jsFiddle.
alert($("option")[0].value);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value=""asd">Test</option>
</select>
Alternativ können Sie den Attributwert mit einfachen Anführungszeichen begrenzen:
<option value=""asd">test</option>
Wenn Sie PHP verwenden, versuchen Sie es mit Aufrufen htmlentities
oder htmlspecialchars
Funktion.

aij
Pro HTML-Syntaxund selbst HTML5sind die folgenden alle gültigen Optionen:
<option value=""asd">test</option>
<option value=""asd">test</option>
<option value=""asd">test</option>
<option value=""asd">test</option>
<option value=""asd">test</option>
<option value="asd>test</option>
<option value="asd>test</option>
Beachten Sie, dass, wenn Sie verwenden XML-Syntax die Anführungszeichen (einfach oder doppelt) sind erforderlich.
Hier ist eine jsfiddle, die alle oben genannten Funktionen zeigt.
Eine andere Möglichkeit besteht darin, doppelte Anführungszeichen durch einfache Anführungszeichen zu ersetzen, wenn es Ihnen nichts ausmacht. Aber das hier erwähne ich nicht:
<option value=""asd">test</option>
Ich erwähne diesen:
<option value="'asd">test</option>
In meinem Fall habe ich diese Lösung verwendet.

Andreas
Wenn Sie JavaScript verwenden und Lodashdann können Sie verwenden _.Flucht()die entkommt "
, '
, <
, >
und &
.

Jim Manico
Sie sollten wirklich nur nicht vertrauenswürdige Daten in eine Whitelist mit guten Attributen zulassen wie: align, alink, alt, bgcolor, border, cellpadding, cellpacing, class, color, cols, colspan, coords, dir, face, height, hspace, ismap, lang , marginheight, marginwidth, multiple, nohref, noresize, noshade, nowrap, ref, rel, rev, rows, rowspan, scrolling, shape, span, summary, tabindex, title, usemap, valign, value, vlink, vspace, width
Sie möchten wirklich nicht vertrauenswürdige Daten von Javascript-Handlern sowie ID- oder Namensattributen fernhalten (sie können andere Elemente im DOM überschreiben).
Auch wenn Sie nicht vertrauenswürdige Daten in ein SRC- oder HREF-Attribut einfügen, dann ist es wirklich eine nicht vertrauenswürdige URL, also sollten Sie die URL validieren, sicherstellen, dass es sich NICHT um eine Javascript-URL handelt, und dann eine HTML-Entität codieren.
Mehr Details zu all dem gibt es hier: https://www.owasp.org/index.php/Abridged_XSS_Prevention_Cheat_Sheet
9158700cookie-checkWie kann ich Anführungszeichen in HTML-Attributen richtig maskieren?yes
Wie generierst du die Seite?
– SLaks
25. Oktober 2010 um 14:11 Uhr
Was ist, wenn Sie einfache Anführungszeichen verwenden?
– Wim ten Brink
25. Oktober 2010 um 14:11 Uhr
Ich muss darauf hinweisen, dass keine dieser Antworten sagt, wie man Zeichenfolgen für die Verwendung in HTML-Attributen richtig maskiert
– Rekonbot
6. Februar 2013 um 18:46 Uhr
@reconbot Das würde davon abhängen, wie der HTML-Code generiert wurde. Bei der Frage ging es um Anführungszeichen, also beantwortet die akzeptierte Antwort technisch gesehen die gestellte Frage. Wie man Zeichenfolgen richtig maskiert, ich habe keinen Link für den allgemeinen Fall zur Hand, aber in PHP würden Sie ihn verwenden
htmlentities
.– Matt Browne
25. Februar 2013 um 16:50 Uhr
Mögliches Duplikat von Anführungszeichen in HTML-Eingabewerten
– Ciro Santilli 新疆再教育营六四事件法轮功郝海东
28. Juli 2014 um 16:24 Uhr