AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Strings entschärfen

Ein Thema von TheMiller · begonnen am 21. Mai 2007 · letzter Beitrag vom 22. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

[PHP] Strings entschärfen

  Alt 21. Mai 2007, 15:33
Hallo,

ich programmiere schon etwas länger PHP, habe aber nie so richtig den Sicherheitsaspekt behandelt. Ich bin gerade dabei, String zu entschräfen, damit diese die Datenbank und meine Seite (XSS etc) nicht gefährden.

Dafür behandle ich jeden String folgendermaßen:

Code:
$text = strip_tags(addslashes(htmlentities($_REQUEST['text'])));
if(strlen($text) > 15)
{
 die("CSS-HACK");
}
Zahlen werden erst mit intval($_REQUEST['zahl1']) eingelesen und Radio- sowie Checkboxen werden auf ihre tatsächlichen Werte überprüft.

Mir geht es hauptsächlich um die Stringbehandlung. Wenn zu den anderen Methoden was anzumerken ist, lese ich das aber auch gerne!

Dankeschön
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#2

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 15:37
Speziell für MySQL als Datenbank gabs da auch direkt mysql_real_escape_string()
(mit addslashes etc. verhampelt man sich so schnell beim hin- und zurück)
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 15:39
Stimmt genau! Das habe ich total vergessen. Aber sonst ok?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 16:39
Kurzum:
  • Werte casten. Einfach mit (int), (string), (whatever) $value den Wert auf nen Typ boxen.
  • Bei Strings:
    • Zeilenumbrueche auf ein Standardformat bringen:
      Code:
      $value = str_replace(array("\n\r", "\r"), "\n", $value);
    • Ggf. stripslashes() ausfuehren:
      Code:
      $value = (get_magic_quotes_gpc()) ? stripslashes($value) : $value;
    • String trimmen:
      Code:
      $value = trim($value);
    • HTML-Steuerzeichen entschaerfen:
      Code:
      $value = htmlspecialchars($value);

Dann jeden String, der in ne SQL-Abfrage wandert mit mysql_real_escape_string() escapen, und fertig ist dein Schutz gegen Cross-Site-Scripting (XSS) und SQL-Injection

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 16:40
Oh, so "einfach"? Hätte gedacht, dass man da mehr beachten muss.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#6

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 17:15
Mist, und ich habe mich im Quelltext und ein "X" verschrieben. Meine natürlich, wie ich es auch im Text geschrieben habe, XSS *g*

ACHSO: was hat das mit den Zeilenumbrüchen auf sich?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 17:54
Ich habe mir jetzt daraus eine Funktion gebastelt, die auch die Länge des Strings überprüft (wegen XSS)... ist diese Funktion in Ordnung?

Code:
function disarmstring($string, $len = NULL)
{
 $result = str_replace(array("\n\r", "\r"), "\n", $string);
 $result = trim($result);
 $result = htmlspecialchars($result);
 if(strlen($string) > $len)
 {
  return false;
 }
 else
 {
  return $result;
 }
}
Nur das mit den Leerzeichen in ein Format bringen habe ich nicht ganz so verstanden? Warum ist das gefährlich? Was kann passieren? etc...

Danke
  Mit Zitat antworten Zitat
Dunedain
(Gast)

n/a Beiträge
 
#8

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 19:10
Handelt sich warscheinlich nur um nen tippfehler, aber heisst das nicht "\r\n" an Stelle von "\n\r"?
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 19:23
Das kann ich dir nicht sagen. Verstehe, wie oben beschrieben, den Sinn nicht, wieso das genormt werden soll.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: [PHP] Strings entschärfen

  Alt 21. Mai 2007, 19:28
Weil man dann nur mit Linux-Umbrüchen arbeitet. Und die (afaik von keinem Betriebssystem eingesetzten) \r-Zeichen gleich mit ummodelt.

Damit wird der string einfach konsistent.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz