Vous pouvez utiliser des rôles. Créez un rôle pour l'application Web (ou autre) utilisée pour se connecter à la base de données. Limitez ce rôle à uniquement autoriser INSERT
et accéder aux tables nécessaires à l'application. Les candidats ayant accès à votre base de données via l'application peuvent alors utiliser uniquement les injections SQL pour ajouter leur CV.
Il est peut-être possible pour quelqu'un de plus talentueux dans SQL d'utiliser des injections d'une manière qui augmente l'autorisation du rôle. Mais je pense que si le rôle avait un accès limité à des tables spécifiques et n'avait pas de privilèges CREATE
ou GRANT
, l'utilisateur ne serait pas en mesure de créer de nouveaux rôles.
Voici quelques informations sur les rôles pour vous aider à démarrer:
Adding Roles to MySQL with MySQL Workbench
Creating Roles in PostgreSQL
GRANT
command - utilisé pour ajouter des privilèges aux utilisateurs sur la table, base de données, etc. Cette page est pour PostgreSQL, mais MySQL est très similaire (voir this SO answer)
Je pense que votre patron a besoin de laisser les trucs techniques aux professionnels. –
Ne vous méprenez pas, mais les gens cherchent des moyens d'empêcher l'injection SQL et votre patron cherche des moyens de l'avoir! Strange :) –
Quelle entreprise intéressante pour laquelle vous travaillez. Je suppose que l'instance isolée avec des rôles limités devrait faire l'affaire –