2009-09-11 6 views

Répondre

4

oui vous pouvez l'enregistrer ti la base de données sous forme cryptée, mais si vous le faites, assurez-vous que vous avez le code source d'origine en toute sécurité stocké quelque part ...

CREATE PROCEDURE dbo.foo 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT 'foo' 
END 

Malheureusement, il y a au moins deux façons pour vaincre ce mécanisme. L'une consiste à exécuter SQL Profiler lors de l'exécution de la procédure stockée; cela peut souvent révéler le texte de la procédure elle-même, en fonction de ce que fait la procédure stockée (par exemple si elle a des lots GO, du SQL dynamique, etc.). Si l'installation initiale échoue, l'utilisateur peut supprimer les procédures stockées ou supprimer la base de données, démarrer une trace du profileur et vous demander de les recréer (auquel cas elles capturent les instructions CREATE PROCEDURE). Vous pouvez empêcher Profiler de révéler le texte à fouineurs en intégrant sp_password dans le code, comme un commentaire:

CREATE PROCEDURE dbo.foo 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT 'foo' 
    -- comment: sp_password 
END 

regard sur MSDN Create Procedure documention

+0

cette méthode n'avez le nom? ou peut-être un lien? – Alkersan

+0

+1 pour la bonne réponse (bien que je ne vois personnellement pas la nécessité de la technique) – ChristopheD

+0

Malheureusement, il faut moins de 5 mn sur google pour trouver un moyen de contourner le cryptage trivial construit dans le serveur SQL. Si vous voulez vraiment protéger votre code, vous pouvez rechercher une solution commerciale –