|
You last visited: Today at 23:41
Advertisement
htmlentities vs. htmlspecialchars
Discussion on htmlentities vs. htmlspecialchars within the Web Development forum part of the Coders Den category.
06/16/2016, 11:20
|
#1
|
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
|
htmlentities vs. htmlspecialchars
GER:
-----
Hey Community,
wie der Titel es schon sagt:
htmlspecialchars() vs. htmlentities() - was benutzt ihr und warum?
-----
ENG:
------
Hey Community,
as the titles already says it:
htmlspecialchars() vs. htmlentities() - which one do you use and why?
-----
Greez, aiimsh0ckz.
|
|
|
06/16/2016, 19:03
|
#2
|
elite*gold: 0
Join Date: Feb 2014
Posts: 978
Received Thanks: 160
|
Keines von beidem ¯\_(ツ)_/¯
Ich wandle direkt die .html/.php in das richtige Format um, da kann ich dann umlaute und sonstiges nach Lust und Laune nutzen.
|
|
|
06/17/2016, 07:32
|
#3
|
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
|
@  :
Geht um XSS-Injection. Also um die Strings ins passende Format zu setzen, um XSS zu vermeiden.
|
|
|
06/17/2016, 10:34
|
#4
|
elite*gold: 0
Join Date: Feb 2014
Posts: 978
Received Thanks: 160
|
@  nie was von gehört, xss header im webserver setzen sollte auch ausreichen.
|
|
|
06/17/2016, 10:36
|
#5
|
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
|
Hmm, davon hab ich wiederum noch nie was gehört. Schein wohl auch ganz nett zu sein.
|
|
|
06/17/2016, 13:36
|
#6
|
elite*gold: 0
Join Date: Feb 2014
Posts: 978
Received Thanks: 160
|
Ist halt besser, finde ich, vor allem wenn man mehrere Seiten hat, spart man sich Code und vor allem auch das Copy & Pasten bzw. neu schreiben des Codes.
|
|
|
06/18/2016, 12:06
|
#7
|
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
|
Der Header an sich ist aber alles andere als sicher, zumal das ja auch von Browsern unterschiedlich gehandhabt wird. Firefox z.B. reagiert auf den Header meine ich immer noch nicht. (  )
Und bspw Nutzung von htmlspecialchars bei einem Request auf alle eingehenden GET/POST Params ist ja auch kein großer Aufwand. Das selbe gilt für die Ausgabe direkt ins Template, zumal die meisten gängigen Frameworks mit Template-Engine sowas meist auch schon direkt unterstützen.
|
|
|
06/19/2016, 12:22
|
#8
|
elite*gold: 1278
Join Date: Dec 2011
Posts: 377
Received Thanks: 35
|
htmlentities() macht imho nur Sinn, wenn du was von fremden Usern/Seiten importierst, direkt darstellst und wirklich, wirklich sicher gehen willst, dass dabei nichts durchflutscht.
Der Nachteil ist dann natürlich, dass du deinen gesamten Text aufsplitten musst, falls du doch eins der Zeichen im RAW-Kontext nutzen willst (XML etc.).
Da man aber allgemein selten bis nie fremdes Material unbearbeitet übernehmen sollte, macht specialchars() am meisten Sinn, wenn dein Code lesbar bleiben soll. Ansonsten mit entities() drüber hauen. Den Output bearbeiten wirst du aber in jedem Fall müssen ->
|
|
|
06/20/2016, 07:38
|
#9
|
elite*gold: 158
Join Date: Apr 2012
Posts: 606
Received Thanks: 76
|
Quote:
Originally Posted by Cholik
Der Header an sich ist aber alles andere als sicher, zumal das ja auch von Browsern unterschiedlich gehandhabt wird. Firefox z.B. reagiert auf den Header meine ich immer noch nicht. (  )
Und bspw Nutzung von htmlspecialchars bei einem Request auf alle eingehenden GET/POST Params ist ja auch kein großer Aufwand. Das selbe gilt für die Ausgabe direkt ins Template, zumal die meisten gängigen Frameworks mit Template-Engine sowas meist auch schon direkt unterstützen.
|
Ich hab mir ein eigenes Framework incl. CMS geschrieben (auf MVC-Basis). Da können "bestimmte" Leute dann auch was eintragen (KEIN! direkter Admin-Zugriff!). Und da brauch ich das dann. Weil selbst "sicher" ist nicht sicher
Ich probier mich gerade an Laravel aus, weil's ja noch einfacher sein soll. Atm. muss ich ja für eine Funktion in mehreren Pages was schreiben, was ziemlich aufwändig ist. Und weiß auch noch nicht ganz, ob das Laravel-Framework XSS-Scripting von sich selbst aus verhindert.
|
|
|
06/20/2016, 09:21
|
#10
|
elite*gold: 0
Join Date: Oct 2011
Posts: 137
Received Thanks: 14
|
Quote:
Originally Posted by Punisher.biz
@  nie was von gehört, xss header im webserver setzen sollte auch ausreichen.
|
Das reicht nicht. Gerade wenn du mit Datenbanken arbeitest, wirst du sicher damit an die grenzen kommen. Generell arbeite ich mit htmlentites, weil hier alle geeigneten Zeichen in HTML-Code umgewandelt wird.
So verhinderst du auch das man die Fremdcode unterschmuggelt, der dann beim Aufruf ausgeführt wird. Das geschieht durch die Umwandlung in HTML-Code. Schau mal  da wird das eigentlich super erklärt. Und denkt nicht, das eine sicherung ausreichen wird. Das erschwert vielleicht ein wenig, macht die Seite oder das Framework nicht sicher. 100%iger Schutz gibt es nicht und wird es auch nicht geben.
|
|
|
06/20/2016, 13:14
|
#11
|
elite*gold: 0
Join Date: Feb 2010
Posts: 112
Received Thanks: 29
|
Quote:
Originally Posted by aiimsh0ckz
GER:
-----
Hey Community,
wie der Titel es schon sagt:
htmlspecialchars() vs. htmlentities() - was benutzt ihr und warum?
-----
|
Da gibt es eigentlich nur einen Fall an dem man es wirklich nutzen kann.
Und zwar bei der Ausgabe. Sprich deine View Kompontente kümmert sich darum deinen Text escaped auszugeben.
Es gibt durchaus auch andere Anwendungsfälle bei denen es sinnvoll sein kann, aber die sind eher selten in Gebrauch. Zb. wenn man Text im Javascript oder CDATA ablegen will ...
Wenn du Eingangsparameter filtern/sanitizen willst empfielt es sich die Filter Funktionen zu nutzen die es seit PHP5 gibt.
Hoffe das hilft dir weiter.
//edit:
Quote:
|
Atm. muss ich ja für eine Funktion in mehreren Pages was schreiben
|
Öhm, dann machst du etwas grundlegendes falsch  Egal welches Framework oder ob selbstgeschriebenes. Lagere deine Funktion in eine Klasse oder wenigstens eine Include Datei aus und nutze dann selbige. Dann schreibst du die Funktion auch nur einmal
|
|
|
06/26/2016, 20:20
|
#12
|
elite*gold: 3
Join Date: Oct 2013
Posts: 5,815
Received Thanks: 1,814
|
Quote:
Originally Posted by aiimsh0ckz
GER:
-----
Hey Community,
wie der Titel es schon sagt:
htmlspecialchars() vs. htmlentities() - was benutzt ihr und warum?
-----
ENG:
------
Hey Community,
as the titles already says it:
htmlspecialchars() vs. htmlentities() - which one do you use and why?
-----
Greez, aiimsh0ckz.
|
Um XXS zu vermeiden solltest du folgenden Code nutzen
Code:
<?php echo htmlentities($deinstring, ENT_QUOTES, 'UTF-8');?>
|
|
|
06/26/2016, 21:38
|
#13
|
elite*gold: 0
Join Date: Apr 2010
Posts: 10,289
Received Thanks: 3,613
|
Du kannst dir diesbezüglich auch mal filter_var anschauen. Ist meiner Meinung nach eine sehr gute Alternative.
|
|
|
Similar Threads
|
Htmlentities mit nl2br und datenbanktext ausgabe
12/02/2012 - Web Development - 4 Replies
Hey, hab 2 Probleme die ich noch nie im Leben hatte und bin wirklich ratlos da es eigentlich immer funktioniert hat:
Habe einen text, wenn ich ihn jetzt stinknormal in Html einfüge geht er normal in die box und wenn er an den Rand kommt gehts in die nächste zeile, wenn ich genau den gleichen text aber aus der Datenbank hole und mit echo ausgebe ist alles in einer Zeile und zieht sich über die ganze seite.
Desweitere funktioniert nl2br nicht mehr wenn htmlentities vorher gemacht wurde,...
|
All times are GMT +1. The time now is 23:42.
|
|