Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Strings entschärfen (https://www.delphipraxis.net/92513-%5Bphp%5D-strings-entschaerfen.html)

TheMiller 21. Mai 2007 14:33


[PHP] Strings entschärfen
 
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

CCRDude 21. Mai 2007 14:37

Re: [PHP] Strings entschärfen
 
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)

TheMiller 21. Mai 2007 14:39

Re: [PHP] Strings entschärfen
 
Stimmt genau! Das habe ich total vergessen. Aber sonst ok?

alcaeus 21. Mai 2007 15:39

Re: [PHP] Strings entschärfen
 
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

Die Muhkuh 21. Mai 2007 15:40

Re: [PHP] Strings entschärfen
 
Oh, so "einfach"? Hätte gedacht, dass man da mehr beachten muss.

TheMiller 21. Mai 2007 16:15

Re: [PHP] Strings entschärfen
 
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

TheMiller 21. Mai 2007 16:54

Re: [PHP] Strings entschärfen
 
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

Dunedain 21. Mai 2007 18:10

Re: [PHP] Strings entschärfen
 
Handelt sich warscheinlich nur um nen tippfehler, aber heisst das nicht "\r\n" an Stelle von "\n\r"?

TheMiller 21. Mai 2007 18:23

Re: [PHP] Strings entschärfen
 
Das kann ich dir nicht sagen. Verstehe, wie oben beschrieben, den Sinn nicht, wieso das genormt werden soll.

DGL-luke 21. Mai 2007 18:28

Re: [PHP] Strings entschärfen
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr.
Seite 1 von 2  1 2      

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