Browse Source

Added the 'login_top' hook (was missing) (login.php)
Made the username form name and password form name changeable (login.php)
Added a random string generator function (strings.php)
mimeBoundaryString now uses the random string generator (smtp.php)

Tyler Akins 25 years ago
parent
commit
0e5a275825
3 changed files with 38 additions and 10 deletions
  1. 2 8
      functions/smtp.php
  2. 29 0
      functions/strings.php
  3. 7 2
      src/login.php

+ 2 - 8
functions/smtp.php

@@ -77,14 +77,7 @@
       static $mimeBoundaryString;
 
       if ($mimeBoundaryString == "") {
-         sq_mt_randomize(); // Initialize the random number generator
-         // Use all allowed chars besides space.
-         $Chrs = '\'()+,-./0123456789:=?ABCDEFGHIJKLMNOP' .
-             'QRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
-         // Create a LONG boundary to ensure no duplicates
-         while (strlen($mimeBoundaryString) < 70) {
-            $mimeBoundaryString .= $Chrs[mt_rand(0, strlen($Chrs))];
-         }
+         $mimeBoundaryString = GenerateRandomString(70, '\'()+,-./:=?_', 7);
       }
 
       return $mimeBoundaryString;
@@ -540,4 +533,5 @@
       // Delete the files uploaded for attaching (if any).
       deleteAttachments();
    }
+   
 ?>

+ 29 - 0
functions/strings.php

@@ -417,4 +417,33 @@
        return $bytes . '<small>&nbsp;' . $type . '</small>';
    }
 
+   /* Generates a random string from the caracter set you pass in
+    *
+    * Flags:
+    *   1 = add lowercase a-z to $chars
+    *   2 = add uppercase A-Z to $chars
+    *   4 = add numbers 0-9 to $chars
+    */
+  
+   function GenerateRandomString($size, $chars, $flags = 0)
+   {
+      if ($flags & 0x1)
+          $chars .= 'abcdefghijklmnopqrstuvwxyz';
+      if ($flags & 0x2)
+          $chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+      if ($flags & 0x4)
+          $chars .= '0123456789';
+          
+      if ($size < 1 || strlen($chars) < 1)
+          return "";
+          
+      sq_mt_randomize(); // Initialize the random number generator
+    
+      while (strlen($String) < $size) {
+         $String .= $chars[mt_rand(0, strlen($chars))];
+      }
+      
+      return $String;
+   }
+
 ?>

+ 7 - 2
src/login.php

@@ -61,6 +61,11 @@
    echo "</TITLE></HEAD>\n";
    echo "<BODY TEXT=000000 BGCOLOR=#FFFFFF LINK=0000CC VLINK=0000CC ALINK=0000CC>\n";
    echo "<FORM ACTION=\"webmail.php\" METHOD=\"POST\" NAME=f>\n";
+   
+   $username_form_name = 'username';
+   $password_form_name = 'secretkey';
+   do_hook('login_top');
+   
    echo "<CENTER><IMG SRC=\"$org_logo\"</CENTER>\n";
    echo "<CENTER><SMALL>";
    printf (_("SquirrelMail version %s"), $version);
@@ -81,13 +86,13 @@
    echo "               <TD WIDTH=30% ALIGN=right>\n";
    echo _("Name:");
    echo "               </TD><TD WIDTH=* ALIGN=left>\n";
-   echo "                  <INPUT TYPE=TEXT NAME=username>\n";
+   echo "                  <INPUT TYPE=TEXT NAME=\"$username_form_name\">\n";
    echo "               </TD>\n";
    echo "            </TR><TR>\n";
    echo "               <TD WIDTH=30% ALIGN=right>\n";
    echo _("Password:");
    echo "               </TD><TD WIDTH=* ALIGN=left>\n";
-   echo "                  <INPUT TYPE=PASSWORD NAME=secretkey>\n";
+   echo "                  <INPUT TYPE=PASSWORD NAME=\"$password_form_name\">\n";
    echo "               </TD>\n"; 
    echo "         </TABLE>\n";
    echo "      </TD>\n";