[an error occurred while processing this directive]

Обфускация структуры полей в базе данных
Хорошим примером защиты данных в разных базах является их шифрование. Для
хранения паролей используют лишь хеш. А хеш, как известно, необратим.
Нижепредложенный perl-скрипт хорош для огораживания структуры полей таблиц баз
данных под управлением MySQL 5.x.  Обфускация полей базы вкупе с шифрованием
данных может минимизировать потери в случае эксплуатации sql-injection
уязвимостей и утечки данных.
В качестве аргументов передаётся файл с SQL-дампом структуры БД и "соль" к
хэшу. На выходе формируется файл с полями, заменёнными на нечитаемые наборы
символов, что затрудняет определение суть хранимых в полях данных (если данные
в БД хранятся в зашифрованном виде).

Код ниже:

   use Digest::SHA qw(sha256_hex);
   print "-------------------------------------\n";
   print "db_obfuscator started\n";
   if (($#ARGV + 1)<2)
   {
        print "run $0 db_name.sql pass\n";
        print "-------------------------------------\n";
        die;
   }
   my $db_filename = $ARGV[0];
   my $db_filename_out =  $ARGV[0];
   $db_filename_out =~ /(\w+)\.(\w+)/;
   $db_filename_out = $1 . "_out." . $2;
   my $base_hash = sha256_hex($ARGV[1]);
   my $hash_str = $base_hash . "test_str";
   my $text;
   $q = sha256_hex($hash_str);
   #print "$hash_str = $q\n";

   $filesize  = -s $db_filename;
   open DB,"<", $db_filename or die "could not open $db_filename\n";
   my $filesize_test = read (DB, $text, $filesize);
   print "read $filesize_test bytes from $db_filename\n";
   close DB;
   my @matches  = ($text =~ /\`[a-z,_,0-9]+\`/g);
   #print "found @matches.lenght() \n";
   foreach $abc(@matches)
   {
        $q = sha256_hex($base_hash.$abc);
        $text =~s/$abc/\`$q\`/g;
   #       print "$abc = $q\n";
   }
   open (outfile, ">", $db_filename_out);
   printf outfile $text or die "could not write $db_filename_out\n";
   close(outfile);
   my $filesize_out = -s $db_filename_out;
   print "wrote $filesize_out bytes into $db_filename_out\n"
 
18.01.2016 , Автор: 赤熊
Ключи: database, field, obfuscator, hash, perl / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Шифрование, PGP

[an error occurred while processing this directive]

[an error occurred while processing this directive]