2008-12-11 7 views
4

Certaines rumeurs circulent selon lesquelles l'équipe de mon entreprise utilisera bientôt des services Web pour tout futur développement d'applications. L'architecture est censée être quelque chose comme ceci:Utilisation d'un service Web pour sécuriser une base de données

Application -> Service Web -> Base de données

Le raisonnement derrière indiqué est la sécurité. Cela ressemble à une énorme perte de temps pour peu ou pas de bénéfice. Ma question est de savoir comment un service Web rend vos données plus sécurisées qu'une base de données. Je pense que si un attaquant voulait obtenir toutes vos données et qu'il était déjà sur le serveur de l'application, il serait assez trivial de comprendre comment l'application obtient ses données. Veuillez garder à l'esprit que ces services Web seraient purement pour les données, et auraient peu ou pas de logique d'entreprise/de validation, et seraient également hors du contrôle des développeurs d'applications (du moins c'est comme cela avec toutes les applications précédentes). qui ont utilisé des services Web).

Répondre

4

S'il est vrai qu'il n'y aura pas de logique métier ou de validation sur les services Web, l'ajout de la couche d'abstraction supplémentaire ne présente qu'un intérêt limité en termes de sécurité. Je dis limité parce que l'interface entre votre application et la base de données est encore plus limitée que si elles se parlaient directement les uns aux autres. Si vous ajoutez une validation et une logique métier à l'équation, vous bénéficiez d'un avantage significatif en termes de sécurité, car toute personne ayant accès au compte de l'application ne peut que faire de la base de données ce que l'application est capable de faire. En outre, il s'agit d'une meilleure conception car elle réduit le couplage entre votre application et les détails d'implémentation de la façon dont les données sont stockées dans la base de données. Si vous souhaitez modifier le schéma de la base de données, vous devez uniquement mettre à jour les services Web et non les applications entières.

0

Si vous utilisez un service Web, nous espérons que vous utiliserez également une sorte de file d'attente lors de l'envoi des données à la base de données. Si vous utilisez une combinaison de service Web et de file d'attente, la sécurité est mise en place avec moins de risques de perte de données. Si vous ne disposez pas d'un combo webservice et file d'attente si vous envoyez des données à la base de données et que vous n'y arrivez jamais, vous n'avez rien à faire pour disparaître.

Vous avez raison mais si quelqu'un veut pénétrer dans votre système, un service web ne va pas vous aider si quelque chose peut empirer si vous rendez le service web public et qu'ils trouvent le nom de votre service web parce qu'ils peuvent simplement interroger votre DB utilisant le webservice et toutes les fonctions de sécurité sur vos serveurs pensera juste que ce sont vos applications qui obtiennent l'information.

+0

transactions de base de données de Google –

+0

dans votre après vous n'avez rien dit d'une transaction avec la base de données. mon message est correct si vous utilisez un service Web avec une file d'attente. Je ne vois pas la raison d'un downvote juste parce que vous n'aimez pas la réponse. – Ironsides

4

Une chose importante à propos des services Web est l'interopérabilité, de sorte que différentes applications provenant de plates-formes différentes puissent utiliser ultérieurement les services et les données. Votre entreprise en bénéficiera grandement. Et vous avez raison sur la sécurité, c'est certainement une des bonnes raisons d'utiliser le service web plutôt que d'exposer un point de terminaison public de la base de données, c'est dangereux!

Les services Web permettent l'accessibilité de vos données, par exemple, vos données peuvent être consultées dans le navigateur par javascript. Il n'y a aucun moyen d'accéder à la base de données sur le serveur directement dans Javascript.

Dans l'ensemble, allez-y, c'est la bonne approche.

+0

Vous voulez savoir comment un service Web est plus sécurisé? –

+0

si vous exposez la base de données avec un flux brut et IP publique: port, Que pensez-vous que les pirates lui feraient? –

+0

Personne n'a rien dit à propos de l'exposition de la base de données avec un flux brut et un IP public: port. En fait, l'architecture proposée ci-dessus montre que même le webservice serait complètement coupé de l'Internet. –

1

l'argument de sécurité est discutable; l'authentification à un service Web est pas différent de l'authentification à la base de données

il y a des raisons légitimes pour déplacer les opérations de db aux services Web et SOA en général, mais la sécurité n'est pas un d'entre eux

Questions connexes