Cela a donc moins à voir avec le code lui-même et plus d'efficacité et de praticité. Lors de mon précédent emploi, nous avions plusieurs bases de données. Un qui était accessible par des moyens publics, et un qui peut seulement être accédé en privé. La base de données publique pouvait essentiellement montrer tout ce que le privé faisait et ils étaient à peu près synchronisés, se tenant à jour toutes les 2 minutes environ. Leur idée était que si la base de données publique était détruite avec un type d'injection SQL ou quelque chose d'autre malveillant qui détruisait la base de données, cela ne faisait pas de mal à la production, et elle pouvait être immédiatement restaurée.Sécurité de base de données double SQL
Cependant, c'était une opération à petite échelle, environ seulement 100 personnes accédant à la DB en même temps, et si quelque chose de mal se passait, je suis sûr que quelqu'un devait manuellement restaurer la base de données pour résoudre le problème. .
Ma question est, est-ce une façon correcte de faire les choses? Quand ce genre de tactique commence-t-il à devenir incroyablement inefficace si jamais? Hypothétiquement, si j'avais des dizaines de milliers de requêtes par jour, cela serait-il impossible à maintenir?
Merci pour la perspicacité.
"Est-ce une façon correcte de faire les choses?" - probablement pas. N'exposez pas la base de données directement. Placez une API autorisée sur celle-ci; au minimum des vues en lecture seule. Ne mélangez pas non plus les problèmes OLTP et OLAP. –
* les bases de données publiques * sont toujours une mauvaise idée. mais: si votre base de données publique peut être affectée par SQL Injection, alors il en va de même pour votre base de données privée - parce que, d'une façon ou d'une autre, les données doivent y arriver, n'est-ce pas? aussi, au lieu de la destruction des données, qui peut être atténuée par des ** sauvegardes **, vous devriez plutôt vous inquiéter de la fuite de données. donc la plupart de vos efforts devraient aller dans le fait de rendre votre code ** sûr ** et votre base de données ** non publique ** –