Sichere Variablen mit PHP

Eine Beispiel-Klasse von mir um Variablen in PHP abzusichern. Dabei verwende ich eine statische Funktion, die relativ leicht in eigene Scripte einzubauen und anzuwenden ist. Anhand der Kommentare im Script ist auch sofort ersichtlich, auf was genau alles geprüft wird und es kann beliebig erweitert werden.

Vor allem, wenn ich gerade an einem neuen (Test-)Projekt „werkel“, möchte ich nicht unnötigt viel Zeit damit vergeuden, erst alle Variablen mühsam zu überprüfen und dafür eine Funktion zu schreiben. Da nehme ich einfach dieses kleine Script und habe bereits einen sehr großen Bereich abgedeckt und kann mich somit auf die Entwicklung der eigentlichen Kernidee konzentrieren.

<?php

/*
  test.php?test=H%22Öa$l@lo%C3:_()W!e.lt//123%274\\\56789
*/

class secureString {
  
  public static function ioStr($str_content, $str_Encoding, $str_Length) {

    // Default String Encoding
    if (!isset($str_Encoding)) {
      $str_Encoding = 'UTF-8';
    }
  
    // Default String Length
    if (!isset($str_Length)) {
      $str_Length = 14;
    }	

    // Cut String to Max Length
    $str_content = substr($str_content, 0, $str_Length+1);
    
    // Convert character encoding (to default = UTF-8)
    $str_content = mb_convert_encoding($str_content, $str_Encoding);
    
    $str_content = urldecode($str_content);
    
    // Strip whitespace (or other characters) from the beginning and end of the string
    $str_content = trim($str_content);
    
    // Strip HTML and PHP tags from the string
    $str_content = strip_tags($str_content);
    
    // Removes back Slashes: "\"
    $str_content = stripslashes($str_content);
    
    // Removes unnecessary characters if some are left (. and - allowed!)
    $str_content = preg_replace('/[\\\\#$,\/@:&!"?!_()\']/', '', $str_content);
    
    // Convert special characters to HTML entities
    $str_content = htmlspecialchars($str_content, ENT_QUOTES, $str_Encoding, true);
    
    // Convert all applicable characters to HTML entities
    $str_content = htmlentities($str_content, ENT_QUOTES, $str_Encoding, true);
    
    // Output
    return $str_content;
  }
  
}

$test_var = secureString::ioStr($_GET['test'], 'ISO-8859-1', 48);
echo ("<h2>DEBUG: " .$test_var . "</h2>");

$test_var2 = secureString::ioStr($_GET['test']);
echo ("<h2>DEBUG: " .$test_var2 . "</h2>");

?>

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.