-
Protection des sources
Bonjour,
Je suis en train de développer un site, séparé en 2 projets (C#, ASP.NET 2.0).
Un projet gérant toute l'interface graphique, l'autre le métier (DAO, process, ...).
Je cherche à sécuriser un maximum mes sources, notamment l'ensemble des requêtes qui sont dans mes DAO.
Même si la DLL n'est a priori pas téléchargeable par un visiteur, je préfèrerais, dans la mesure du possible, qu'il ne soit pas possible simplement de faire du reverse engineering dessus.
J'ai commencé à regarder et je n'ai rien vraiment trouvé de concluant.
J'ai tenté un peu a utiliser Dotfuscator Community Edition, mais le résultat est assez mauvais : seuls les noms de classe / méthodes sont offusquées, mais par exemple pas les requêtes.
De plus, quand je prend ma DLL offusquée, elle ne fonctionne évidemment pas avec le site puisque les objets ne portent plus le même nom.
J'aurais voulu savoir tout d'abord ce que vous pensiez de l'offuscation pour un projet ASP.NET, et / ou s'il y a d'autres moyens de protection.
Ensuite, connaitriez vous un bon tutorial (ou avez vous quelques conseils) pour me lancer vraiment là dedans ?
Google ne m'a pour le moment pas trop aidé ...
Merci beaucoup,
Worldofdada
-
Pas de réponses, dommage.
Je repasserai voir de temps en temps.
A priori, ca ne sert pas a grand chose, mais si je voulais le mettre en place, ca risque d'être complexe.
-
Salut,
Malheureusement, pour du .Net, je ne connais rien de vraiment concluant pour empêcher le reverse. Une solution faisable, mais loin d'être propre c'est :
- écrire une DLL en C/C++/ASM (un language système, les protections de décompilation la dessus sont beaucoup plus performante) qui contient une fonction te retournant une clef texte.
- tu chiffres ton assembly avec cette même clef, que tu embarque ensuite en tant que ressource embarquée, ou fichier externe, comme tu veux.
- dans ton code, tu utilises la premiere DLL pour obtenir la clef, puis tu decryptes l'assembly avec cette clef et enfin tu charges l'assembly décryptée par reflection.
Oui je sais, ca tiens de l'usine a gaz, mais c'est la seule solution que j'ai trouvé pour offrir une protection anti-reverse acceptable sur du .Net (je dis bien acceptable, c'est très très loins d'être parfait). Je suis pas certain que tu puisse te permettre ce genre de folies en ASP, mais bon, avec un peu de chance ^^'
-
Salut,
pour les requetes, c'est assez normal, l'obfuscation va changer des noms de variables, et...mais une requete est une chaine constante ...donc, pas obfuscable, sinon ta db va se prendre une chaine obfusquee ;)
Une option, c'est de passer par des stored procedures, le client verra le nom des sp, mais plus le contenu...
Une autre, c'est de prendre un ORM, ce qui devrait suffisamment t'eclater les donnees pour qu'un developpeur lambda soit decourage en 30 minutes,,,