Support for Password security on MySQL 5.7
This commit is contained in:
parent
8935266d06
commit
e7b40b87a1
1 changed files with 11 additions and 5 deletions
|
@ -771,6 +771,12 @@ sub security_recommendations {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $PASS_COLLUMN_NAME='password';
|
||||||
|
if ($myvar{'version'} =~ /5.7/) {
|
||||||
|
$PASS_COLLUMN_NAME='authentication_string';
|
||||||
|
}
|
||||||
|
debugprint "Colunn password = $PASS_COLLUMN_NAME";
|
||||||
|
#exit(0);
|
||||||
# Looking for Anonymous users
|
# Looking for Anonymous users
|
||||||
my @mysqlstatlist = select_array
|
my @mysqlstatlist = select_array
|
||||||
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE TRIM(USER) = '' OR USER IS NULL";
|
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE TRIM(USER) = '' OR USER IS NULL";
|
||||||
|
@ -790,7 +796,7 @@ sub security_recommendations {
|
||||||
|
|
||||||
# Looking for Empty Password
|
# Looking for Empty Password
|
||||||
@mysqlstatlist = select_array
|
@mysqlstatlist = select_array
|
||||||
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE password = '' OR password IS NULL";
|
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE $PASS_COLLUMN_NAME = '' OR $PASS_COLLUMN_NAME IS NULL";
|
||||||
if (@mysqlstatlist) {
|
if (@mysqlstatlist) {
|
||||||
foreach my $line ( sort @mysqlstatlist ) {
|
foreach my $line ( sort @mysqlstatlist ) {
|
||||||
chomp($line);
|
chomp($line);
|
||||||
|
@ -806,7 +812,7 @@ sub security_recommendations {
|
||||||
|
|
||||||
# Looking for User with user/ uppercase /capitalise user as password
|
# Looking for User with user/ uppercase /capitalise user as password
|
||||||
@mysqlstatlist = select_array
|
@mysqlstatlist = select_array
|
||||||
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE CAST(password as Binary) = PASSWORD(user) OR CAST(password as Binary) = PASSWORD(UPPER(user)) OR CAST(password as Binary) = PASSWORD(UPPER(LEFT(User, 1)) + SUBSTRING(User, 2, LENGTH(User)))";
|
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE CAST($PASS_COLLUMN_NAME as Binary) = PASSWORD(user) OR CAST($PASS_COLLUMN_NAME as Binary) = PASSWORD(UPPER(user)) OR CAST($PASS_COLLUMN_NAME as Binary) = PASSWORD(UPPER(LEFT(User, 1)) + SUBSTRING(User, 2, LENGTH(User)))";
|
||||||
if (@mysqlstatlist) {
|
if (@mysqlstatlist) {
|
||||||
foreach my $line ( sort @mysqlstatlist ) {
|
foreach my $line ( sort @mysqlstatlist ) {
|
||||||
chomp($line);
|
chomp($line);
|
||||||
|
@ -847,11 +853,11 @@ sub security_recommendations {
|
||||||
# Looking for User with user/ uppercase /capitalise weak password
|
# Looking for User with user/ uppercase /capitalise weak password
|
||||||
@mysqlstatlist =
|
@mysqlstatlist =
|
||||||
select_array
|
select_array
|
||||||
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE password = PASSWORD('"
|
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE $PASS_COLLUMN_NAME = PASSWORD('"
|
||||||
. $pass
|
. $pass
|
||||||
. "') OR password = PASSWORD(UPPER('"
|
. "') OR $PASS_COLLUMN_NAME = PASSWORD(UPPER('"
|
||||||
. $pass
|
. $pass
|
||||||
. "')) OR password = PASSWORD(UPPER(LEFT('"
|
. "')) OR $PASS_COLLUMN_NAME = PASSWORD(UPPER(LEFT('"
|
||||||
. $pass
|
. $pass
|
||||||
. "', 1)) + SUBSTRING('"
|
. "', 1)) + SUBSTRING('"
|
||||||
. $pass
|
. $pass
|
||||||
|
|
Loading…
Reference in a new issue