Quels sont les problèmes de sécurité liés à la fermeture de la connexion à la base de données après son utilisation? PHP ne le ferme-t-il pas automatiquement une fois qu'une nouvelle page est chargée?Quelles sont les implications pour la sécurité de ne pas fermer la connexion à la base de données une fois que vous avez terminé?
Répondre
Comme la documentation mysql_close()
dit:
L'utilisation mysql_close() est généralement pas nécessaire , comme non persistantes liens sont automatiquement fermées à la fin de l'exécution du script. Voir également des ressources de libération.
Étant donné que les connexions sont gérées par PHP, il ne devrait pas y avoir de risque de sécurité.
Je ne peux pas dire si la page ferme la connexion (cela dépend de ce qui la gère) mais en général, c'est une bonne idée de la fermer lorsque vous avez terminé, car le laisser ouvert plus longtemps provoque un problème de famine pour les autres pages qui sont en cours de traitement et qui souhaitent se connecter à la même source de données.
PHP est supposé pour être une architecture de "rien partagé". En d'autres termes, toutes les ressources sont allouées à chaque requête, puis nettoyées une fois la requête terminée. Ainsi, les ressources telles que la mémoire, les handles de fichiers, les sockets, les connexions à la base de données, etc. doivent être désallouées ou fermées.
Toutefois, vous pouvez utiliser persistent database connections qui ne sont pas fermés, mais qui sont réutilisés pour la prochaine demande. Si vous faites cela, il y a une implication de sécurité. Tout état de connexion est hérité par la prochaine requête PHP. Donc, si votre application utilise des variables définies par l'utilisateur de la base de données, ou des tables temporaires, ou même LAST_INSERT_ID()
, la requête PHP suivante peut être capable de voir les données privilégiées qu'elle ne devrait pas voir. Si vous fermez la connexion à la base de données pour éviter cela, vous êtes en train de vaincre la valeur de la connexion persistante. Donc, vous pouvez aussi bien utiliser des connexions de base de données simples.
Jeff Atwood a écrit an interesting blog post sur ce même sujet que vous pourriez trouver intéressant.
- 1. Quelles sont les conséquences de ne pas fermer la connexion à la base de données après une erreur?
- 2. Quelles sont les implications de la suppression d'un compte d'utilisateur?
- 3. silverlight isolatedstorage implications pour la sécurité
- 4. Quelles sont les implications de l'exécution d'une base de données d'accès Microsoft en 2003 et 2007?
- 5. Quelles sont les utilisations les plus pratiques que vous avez appliquées à la méthode data() de jQuery?
- 6. Quelles sont les implications sur les performances d'accès à une valeur de registre Windows?
- 7. Meilleure façon de gérer la connexion à une base de données pour une servlet Java
- 8. Quelles sont les implications des connexions série semi-duplex?
- 9. besoin d'aide avec la connexion à la base de données
- 10. Quelles sont les implications de l'utilisation de code dangereux
- 11. Assistant de connexion à la base de données SOAP UI
- 12. Abstraction de base de données - quelles sont les options?
- 13. Sécurité de la base de données
- 14. Comment vérifier la connexion à la base de données rapidement?
- 15. Aide à la connexion à la base de données
- 16. Suggestions de conception de sécurité pour la liste de contrôle d'accès dans la base de données?
- 17. VS2008 perd la connexion à la base de données après les mises à jour en ssms2008
- 18. L'accès ne me laisse pas voir les modifications que j'ai apportées à la base de données
- 19. Événement de la base de données Flex AdvancedDataGrid terminé
- 20. Quelles sont certaines des façons les plus intéressantes que vous avez utilisées memcached?
- 21. Les champs de formulaire JQuery + ne sont pas correctement insérés dans la base de données
- 22. L'utilisation de yield pour itérer sur un lecteur de données risque de ne pas fermer la connexion.
- 23. Déploiement de base de données avec VSDBCMD.exe n'utilisant pas la sécurité intégrée
- 24. Quelles sont les pratiques de sécurité de base de formulaire ASP.NET?
- 25. Pool de connexion à la base de données JBoss
- 26. CodeIgniter: Redirection si les informations de connexion à la base de données n'ont pas été saisies?
- 27. Php - Connexion à la base de données distante très lente
- 28. MySQL INSERT données ne sont pas stockées dans la bonne base de données, seulement temporaire?
- 29. Les utilisateurs anonymes ASP .NET ne sont pas stockés dans la base de données
- 30. ASP Classic Webapp - Connexion à une base de données SQL différente via la connexion
Surtout si l'application utilise la mise en commun des connexions. –