J'ai entendu dire que toute personne connaissant mon nom d'utilisateur et mon mot de passe MySQL peut y accéder, même si elle écoute uniquement localhost.
Supposons que mes informations soient les suivantes:
USER: root
PASS: 123456
Host: LOCALHOST (only)
Comment est-il possible que quiconque (local) puisse y accéder?
Si vous limitez l'accès des hôtes distants à vos noms d'utilisateur et mots de passe, quelqu'un ne pourra pas accéder à la base de données en externe.
Vous pouvez également configurer votre pare-feu pour autoriser uniquement le trafic vers 3306 (port par défaut MySQL) à partir de la machine hôte locale.
Mise à jour
Pour configurer votre utilisateur afin qu'il puisse uniquement accéder via l'utilisation de LOCALHOST:
GRANT ALL PRIVILEGES ON *.* TO db_user @'localhost' IDENTIFIED BY 'db_passwd';
GRANT ALL PRIVILEGES ON *.* TO db_user @'127.0.0.1' IDENTIFIED BY 'db_passwd';
Liez également votre serveur MySQL à l'adresse locale. Vous pouvez le faire en modifiant le [mysqld]
section de my.cnf
:
[mysqld]
bind-address = 127.0.0.1
C'est une question plus ancienne que j'ai rencontrée, mais si Darkeden avait phpMyAdmin ou un fonctionnement similaire, n'importe qui peut se connecter à cela en utilisant des informations d'identification MySQL valides.
S'il a été compromis, en plus de restreindre les connexions, changez tous les mots de passe.
vous pouvez bloquer l'accès direct à MySQL sur le pare-feu ou dans MySQL lui-même, mais la façon la plus probable de vous faire pirater est via une application Web non sécurisée - dans cette situation, l'attaquant pourrait très probablement lire la connexion à votre base de données et se connecter à partir de le serveur.
Gardez donc vos applications sécurisées - gardez tout à jour, n'autorisez pas les téléchargements de fichiers, utilisez suPHP si vous avez plusieurs comptes, etc.
Si vous limitez votre application mysql, procédez comme suit:
1. Vous pouvez simplement bloquer le port 3306. Si le site est sur le même serveur, il pourra toujours accéder à la base de données en utilisant localhost comme nom d'hôte.
2.Ajoutez simplement "bind-address = 127.0.0.1" à la section "[mysqld]" de leur fichier my.cnf pour restreindre l'accès à localhost uniquement.
La plupart des gens utilisent ce type de restriction.
Je n'ai pas vu de réponse qui répondait à sa question (ajustée) - il l'a verrouillée sur localhost et l'attaquant est toujours en train d'entrer.
Si vous l'avez vraiment restreint à l'hôte local (vérifiez en utilisant netstat -an | egrep 3306 pour vérifier qu'il écoute 127.0.0.1 et non 0.0.0.0) , puis le seul moyen d'y accéder est d'établir une connexion à partir de cet hôte local.
Premières étapes à suivre:
Il pourrait également réussir à utiliser:
accéder via un programme que vous exécutez (par exemple un serveur Web) qui est accessible de l'extérieur et qui a un trou de sécurité qui lui permet d'exécuter des commandes sql arbitraires via sa connexion à la base de données existante - voir https://www.w3schools.com /sql/sql_injection.asp
tromper un programme auquel il a accès de l'extérieur pour proxy une connexion pour lui à localhost: 3306 (par exemple via un pare-feu réseau mal configuré sur la machine)
tromper un programme pour exécuter un programme local (bash. mysql etc.), et à partir de là accéder à la base de données - les dépassements de tampon et autres données spécialement conçues sont un problème courant pour exécuter du code arbitraire
l'homme au milieu attaque sur une connexion qui a un accès légitime
bogues dans un programme qui traite automatiquement ou manuellement des données de l'extérieur, par exemple, courrier électronique, traitement de postscript/pdf/tout document avec traitement de script - même l'affichage d'un fichier texte peut être dangereux - voir https: //www.proteansec .com/linux/blast-past-executing-code-terminal-emulators-via-escape-sequence /
l'ingénierie sociale un moyen d'amener les gens à vous donner accès
réussir à connecter un périphérique matériel à un ordinateur qui y a accès (combien de personnes ramasseront une "clé USB" gisant dans le parking et la vérifieront à la place, c'est un "clavier programmable", et TOUS les ordinateurs font confiance aux claviers!)
et bien d'autres encore toutes les autres méthodes que je ne connais pas, mais celles qui sont impliquées partagent ...
N'oubliez pas que vous devez avoir une sécurité pratique, je pense que xkcd le dit juste: https://xkcd.com/538/