php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 06-06-2007, 17:02
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard magic_quotes und stripslashes

Hallo Forum,

in meinem Kontaktformular werden bei einer Fehleingabe die vom Besucher ausgefüllten Felder übernommen:
PHP-Code:
<input id="betreff" type="text" name="betreff" value="' . $email_betreff . '" /> 
Wenn jetzt jemand Anführungszeichen postet, lasse ich sie durch htmlspecialchars zu Entities umwandeln. Dennoch werden sie escaped, was ich bislang nur folgendermaßen verhindern kann:
PHP-Code:
$email_betreff = (htmlspecialchars(stripslashes($_POST['betreff']))); 
Nun meine Frage: Geht das auch anders? Meine Lösung setzt ja magic_quotes voraus, was ja etwas verpönt ist und auch nicht überall aktiviert bzw. möglich ist.

Vielen Dank,
Erik
Mit Zitat antworten
  #2 (permalink)  
Alt 06-06-2007, 17:07
jens76
 Member
Links : Onlinestatus : jens76 ist offline
Registriert seit: Dec 2004
Beiträge: 328
jens76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

warum escapst du diese eingaben wenn du sie an den user zurück gibst?

escapen solltest du erst wenn du die daten irgendwo abspeicherst. zb in einer db.
Mit Zitat antworten
  #3 (permalink)  
Alt 06-06-2007, 17:12
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist ja das Problem: Nicht ich escape sie, sondern der Server, und das kann ich bisher halt nur durch stripslashes verhindern.
Mit Zitat antworten
  #4 (permalink)  
Alt 06-06-2007, 17:17
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Wenn du keine Möglichkeit hast, selbst auf die Konfiguration einzuwirken - dann bleibt dir noch, vorher abzufragen, ob magic_quotes_gpc aktiviert ist, und wenn ja, dann die zusätzlichen Slashes zu entfernen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 06-06-2007, 17:19
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

@jens: er escaped nicht, er unescaped (wegen magic_quotes)

@Erik: Frage die Konfiguration mit get_magic_quotes_gpc ab, bevor Du Dich für ein stripslashes entscheidest.

LG
Mit Zitat antworten
  #6 (permalink)  
Alt 06-06-2007, 17:24
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank schonmal an Euch alle, aber gibt's denn keine Alternative zu magic_quotes bzw. stripslashes? Bisher ging's zwar problemlos auf jedem Server, aber ich würde es lieber ganz anders lösen (vorausgesetzt, es gibt überhaupt eine bessere Alternative).
Mit Zitat antworten
  #7 (permalink)  
Alt 06-06-2007, 17:27
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie jetzt, Alternative? Wenn Du die Konfiguration ändern kannst, dann schalt sie halt ab. Wenn Dein Script auf beliebigen Servern laufen soll, auf die Du keinen Einfluss hast, musst Du's halt abfragen.
Mit Zitat antworten
  #8 (permalink)  
Alt 06-06-2007, 17:32
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Okay, also muß ich es schon so lösen wie bisher, und einfach nur überprüfen bzw. dafür sorgen, daß magic_quotes aktiviert ist? Und falls es nicht aktivierbar ist, mit den Slashes leben? (wäre ja auch nicht so schlimm, und bisher geht's ja auch eh überall.)

EDIT: Oder was meinst Du mit Konfiguration und abschalten, daß der Server "automatisch" escaped? Wie kann ich das abschalten?

Geändert von erikbln (06-06-2007 um 17:35 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 06-06-2007, 17:44
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe mal schnell gegoogelt und gemerkt, daß mir da offensichlich ein Hintergrund fehlte: Die Entities werden durch aktiviertes magic_quotes escaped, richtig? Also schalte ich dieses entweder ab, oder (wenn das nicht möglich ist) setze stripslashes ein. Sehe ich das richtig?
Mit Zitat antworten
  #10 (permalink)  
Alt 06-06-2007, 17:54
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Ja. (Bis auf die Formulierung "Entities".)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 06-06-2007, 18:02
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist klar, war blöd formuliert (auch aus Faulheit ;-)) Nicht die Entities werden escaped (wozu auch), sondern die direkt ins input-Element eingegebenen Anführungszeichen, noch bevor htmlspecialchars angewandt wird.

Hat sich ja alles schnell aufgeklärt, vielen Dank an alle!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:30 Uhr.