J’ai développé une application .Net 3.5 Windows Forms. Je souhaite également concevoir un site Web doté d’un service Web avec plusieurs méthodes Web pour interroger la firebase database sur la machine hôte. Je souhaite que le service Web soit appelé UNIQUEMENT via mon application winapp et mon site Web! Et je ne souhaite pas que d’autres personnes puissent appeler et utiliser mon service Web, mais uniquement certaines personnes ayant access à l’application Windows que j’ai développée.
J’ai besoin d’un bon scénario de sécurité pour cela! J’apprécie vraiment tous ceux qui peuvent m’aider, car c’est la première fois que je développe un service Web et j’en ai vraiment besoin pour être aussi sécurisé que je l’ai mentionné!
Ce dont vous parlez va être difficile à faire pour plusieurs raisons, mais principalement ceci:
Si vous mettez quelque chose dans le code de votre application WinForms, il peut être décompilé très facilement. Vous pouvez masquer le code à votre guise, mais vous pouvez le décomstackr.
À cause de cela, tout code que vous avez dans votre application peut être lu par toute personne ayant access au code. Vous devez toujours traiter toute application WinForms comme si elle était complètement compromise et vous assurer que la sécurité côté serveur compense.
Pour cette raison, vous ne pouvez pas simplement stocker les noms d’utilisateur et les mots de passe dans des fichiers de configuration ou dans du code. Vous devez trouver quelque chose d’autre. Vous POUVEZ utiliser l’authentification et inviter l’utilisateur à entrer un nom d’utilisateur / mot de passe au lancement du programme et l’utiliser. Cependant, les gens ont tendance à partager ces choses, alors vous voudrez peut-être une protection supplémentaire.
Vous pouvez mettre les informations de connexion ou les secrets dans app.config et les chiffrer, mais toute personne qui peut décomstackr le code, peut le recomstackr et append du code pour le déchiffrer à sa guise.
Vous pouvez fournir des clés signées avec votre application et les utiliser dans un mécanisme d’authentification, mais cela peut être contourné.
Vous pouvez limiter votre adresse IP à des adresses IP spécifiques, mais celles-ci peuvent être usurpées.
Toutefois…
En superposant toutes les techniques ci-dessus, vous pouvez empêcher un attaquant de contourner vos précautions. Nous avons effectué les opérations suivantes dans l’une de nos applications pour lesquelles nous avions une exigence similaire:
Si tout va bien, superposer les défenses découragera l’attaquant moyen.
Microsoft a également quelques directives: http://msdn.microsoft.com/en-us/library/ff648643.aspx