Ticket #479: 1184.diff

File 1184.diff, 2.8 kB (added by dmorton, 14 months ago)

Patch file without DOS line endings...

  • branches/1.0/php/xlogin.php

     
    8686 
    8787   // Get the expected form variables from the POST array 
    88    if (isset($_POST["language"])) { 
     88   if (isset($_POST["language"])   && strlen($_POST["language"]) == 2 ) { 
    8989      $display_language = trim($_POST["language"]); 
    9090   } else { 
    9191      $display_language = $default_display_language; 
    9292   } 
    93    if (isset($_POST["charset"])) { 
     93   if (isset($_POST["charset"]) && preg_match("/^[\x20-\x7e]{1,40}$/", $_POST["charset"])) { 
    9494      $html_charset = trim($_POST["charset"]); 
    9595   } else { 
  • branches/1.0/php/login.php

     
    8181   if (isset($_GET["super"])) { 
    8282      $super = trim($_GET["super"]); 
     83      if($super != "register" && $super != "unregister") { 
     84        $logger->err("invalid super parameter"); 
     85        $super = ""; 
     86      } 
    8387   } else { 
    8488      $super = ""; 
     
    8690 
    8791   // Determine the initial language preference, 
    88    // either from default or from manually selected link  
    89    if (isset($_GET["lang"])) { 
     92   // either from default or from manually selected link 
     93   if (isset($_GET["lang"]) && strlen($_GET["lang"]) == 2 ) { 
    9094      $display_language = trim($_GET["lang"]); 
    9195      $display_language_is_default = false; 
    92    } elseif (isset($_GET["prevlang"])) { 
     96   } elseif (isset($_GET["prevlang"]) && strlen($_GET["prevlang"]) == 2) { 
    9397      $display_language = trim($_GET["prevlang"]); 
    9498      $display_language_is_default = true; 
     
    111115 
    112116   // Determine the user's character set preference 
    113    if (isset($_GET["charset"])) { 
     117   // Charset must be printable ascii, 1-40 characters.  /^[\x20-\x7e]{1,40}$/ 
     118   if (isset($_GET["charset"]) && preg_match("/^[\x20-\x7e]{1,40}$/", $_GET["charset"])) { 
    114119       $html_charset = trim($_GET["charset"]); 
    115120   } else { 
  • branches/1.0/php/internal-init.php

     
    8787 
    8888    // Determine the user's language preference 
    89     if (isset($_GET["lang"])) { 
     89    if (isset($_GET["lang"]) && strlen($_GET["lang"]) == 2 ) { 
    9090       $display_language = trim($_GET["lang"]); 
    9191    } else { 
     
    9898 
    9999    // Determine the user's character set preference 
    100     if (isset($_GET["charset"])) { 
     100    if (isset($_GET["charset"]) && preg_match("/^[\x20-\x7e]{1,40}$/", $_GET["charset"])) { 
    101101        $html_charset = trim($_GET["charset"]); 
    102102    } else {