php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.07.2007, 02:08  
Erfahrener Benutzer
 
Registriert seit: 29.03.2004
Beiträge: 332
$$$ ThiKool $$$ ist in Verruf geraten
Standard html eingabe unterbinden

hi,

ich hab folgendes Prolbem

Meine User können unter Usertext einen Text eingeben. Ein user hat aber einen Metatag reingeschrieben der direkt auf seine HP umleitet.

Ausgegeben wird der Usertext ganz gewöhnlich mit echo.

Wie kann man am sinvollsten die ausgaben von html verhindern?
$$$ ThiKool $$$ ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.07.2007, 02:19  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

je nachdem, was dein Anspruch von "am Sinvollsten" ist.

Am einfachsten wäre die Verwendung von html_entity_decode. Da wird dann im Zweifelsfall einfach knall hart dessen angezeigt, aber nix ausgeführt.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 18.07.2007, 02:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Um das Problem zu umgehen gibt es BBCode. Vorher werden alle <Tags> mittels
http://de.php.net/strip_tags
entfernt, danach erst läuft der BBCode-Parser drüber und ersetzt zahnlose [b] durch [b]. Wenn der Tag nicht erkannt wird, bleibt er stehen. Da es sich um [eckige] Klammern und nicht um <spitze> Klammern handelt, hat er keine Extra-Funktionalität mehr in der dargestellten HTML-Seite.

Problem gelöst.
Zergling-new ist offline  
Alt 18.07.2007, 03:11  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ansonsten ist htmlentities() zu empfehlen, nicht html_entity_decode() wie fälschlicherweise von Crunch empfohlen (denn dann bräuchte der Angreifer ja nur &lt;script&gt; etc. schreiben)
nikosch ist gerade online  
Alt 18.07.2007, 09:43  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Jeglicher DB-Insert wird bei mir mit folgender Funktion in die DB eingetragen:

PHP-Code:
    public static function db_insert_data($table$cols$data$encapse TRUE)    {
        if(
$encapse)    {
            
$data htmlspecialchars($data);
        }
        
$sql "INSERT INTO ".$table." (".$cols.") VALUES (".$data.");";
        
$query = @mysql_query($sql)
            or die(
Mysql::report_error("Insert: ".mysql_error()."\nQuery: ".$sql));
        return(!
$query false true);
    } 
Schaus dir mal an und les hier mal rein:

http://de.php.net/manual/de/function...ecialchars.php
http://de.php.net/manual/de/function.htmlentities.php
Igäl ist offline  
Alt 18.07.2007, 11:18  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von nikosch77
Ansonsten ist htmlentities() zu empfehlen, nicht html_entity_decode() wie fälschlicherweise von Crunch empfohlen (denn dann bräuchte der Angreifer ja nur &lt;script&gt; etc. schreiben)
Stimmt, war falschrum ^^
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 18.07.2007, 11:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
return(!$query ? false : true);
Ist übrigens für einen INSERT das selbe wie
Code:
return $query
Ich würde trotzdem
Code:
return $query and mysql_affected_rows() == 1
verwenden.
Zergling-new ist offline  
Alt 18.07.2007, 11:50  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Wie meinst du das mit "and"? Und was hab ich hier davon, wenn ich vergleiche ob die betroffenen Datensätze == 1 sind? Versteh das grad net
Igäl ist offline  
Alt 19.07.2007, 17:46  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

Er würde nur true zurückgeben wenn $query true ist und von der mysql_query nur eine Zeile in der Datenbank betroffen ist.

Hoffe ich habs richtig verstanden...
webbi ist offline  
Alt 19.07.2007, 23:19  
Erfahrener Benutzer
 
Registriert seit: 29.03.2004
Beiträge: 332
$$$ ThiKool $$$ ist in Verruf geraten
Standard

Hmm Danke erstmal für euere Zahlreichen Antworten.

Ich möchte aber, das der Text zwar angezeigt wird also das test ausgegeben wird, test aber nicht fett geschrieben wird also die funktion nicht ausgeführt wird
$$$ ThiKool $$$ ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] HTML Mail mit Lücken mitten in den Worten, wie kommt das? DeeFour PHP-Fortgeschrittene 2 29.05.2008 15:47
Variable und komplette HTML Datei chrisonline PHP Tipps 2007 3 24.05.2007 15:30
&amp;amp;amp;lt;if&amp;amp;amp;gt; &amp;amp;amp;lt;/if&amp;amp;amp;gt; in einer HTML Datei fuer Templ PHP-Fortgeschrittene 6 03.11.2005 12:05
html 4.01 lindner HTML, Usability und Barrierefreiheit 23 06.08.2005 22:08
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
HTML unterbinden Freeaak PHP Tipps 2005 4 21.04.2005 20:25
Kommentare - HTML unterbinden patr1k PHP Tipps 2005 4 17.04.2005 16:04
Ausgabe unterbinden PHP Tipps 2005 3 12.04.2005 16:08
HTML Tabellenzeile in Tabelle einfügen? Datenbanken 2 28.01.2005 00:28
[Erledigt] html mit mail versenden PHP-Fortgeschrittene 0 27.01.2005 19:53
IMAP: Bild(er) in HTML Part richtig darstellen PHP-Fortgeschrittene 1 07.10.2004 12:21
{$varname.optelement} mit preg_match aus HTML extrahieren PHP Tipps 2004 0 11.09.2004 04:13
Unterschied HTML und PHP PHP Tipps 2004 4 28.08.2004 19:02
Validitor (HTML 4.01) = Schwachsinn? Filewalker Off-Topic Diskussionen 19 03.08.2004 15:27
[Erledigt] PDF aus HTML erzeugen ? PHP-Fortgeschrittene 2 05.06.2004 02:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
wie kann man html eingaben in datenbanken unterbinden, html eingabe verhindern, strip_tags entfernt eckige klammern?, php http eingabe unterbinden, bei htmleingabe senden verhindern, html_entity_decode kontaktformular, html input eingaben unterbinden, php html eingaben unterbinden

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:41 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.