DROP USER to delete anonymous accounts

DROP USER has existed for a very long time.

Use the QUOTE sql function to ensure accounts are correctly quoted
and this helps the delete recommendation.
This commit is contained in:
Daniel Black 2020-12-08 14:37:21 +11:00
parent de4b145e96
commit 1bb30f508e

View file

@ -1784,21 +1784,19 @@ sub security_recommendations {
# 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(QUOTE(user), '\@', QUOTE(host)) FROM mysql.user WHERE TRIM(USER) = '' OR USER IS NULL";
debugprint Dumper \@mysqlstatlist; debugprint Dumper \@mysqlstatlist;
#exit 0; #exit 0;
if (@mysqlstatlist) { if (@mysqlstatlist) {
foreach my $line ( sort @mysqlstatlist ) {
chomp($line);
badprint "User '" . $line . "' is an anonymous account.";
}
push( @generalrec, push( @generalrec,
"Remove Anonymous User accounts - there are " "Remove Anonymous User accounts - there are "
. scalar(@mysqlstatlist) . scalar(@mysqlstatlist)
. " anonymous accounts." ); . " anonymous accounts." );
push( @generalrec, foreach my $line ( sort @mysqlstatlist ) {
"DELETE FROM mysql.user WHERE user ='';" ); chomp($line);
badprint "User " . $line . " is an anonymous account. Remove with DROP USER " . $line . ";";
}
} }
else { else {
goodprint "There are no anonymous accounts for any database users"; goodprint "There are no anonymous accounts for any database users";