web-dev-qa-db-fra.com

Faire du code de base de données Open Source

Je construis une application Web. Il n'est actuellement pas open source, mais j'envisage de la faire open source, de sorte que d'autres puissent corriger les bugs, l'améliorer, de sorte que d'autres ne soient pas méfiants de mes motivations (amusantes à coder et à créer un outil utile pour les autres - argent) et ainsi de suite. Il est construit sur PHP et mysql.

J'essaie également de suivre les meilleures pratiques tout en le créant. Ainsi, par exemple, les connexions seront protégées par SSL, les mots de passe sont hachés à l'aide de l'algorithme BCRYPT en utilisant la fonction Password_Hash de PHP et j'utilise des déclarations préparées partout.

Cependant, je ne sais pas comment procéder comme j'ai également entendu dire que vous ne souhaitez pas exposer votre structure de base de données à d'autres. J'ai des morceaux de SQL sur toutes mes pages afin que d'autres auraient une bonne idée de ce qui est stocké où en regardant ce code. La seule chose que je suis sûr, c'est que le script avec le nom d'utilisateur/mot de passe de connexion ne doit pas être hébergé sur le référentiel source de mon choix.

Comment puis-je/devrais-je continuer à faire mon code open source?

6
WelshGandalf

Cependant, je ne sais pas comment procéder comme j'ai également entendu dire que vous ne souhaitez pas exposer votre structure de base de données à d'autres.

Vous ne voulez pas les exposer car si l'injection SQL existe, elles savent quelles tables ciblent. Cependant, si l'injection SQL existe pour que cela se produise, il s'agit d'une protection anticipé car votre sécurité est déjà brisée. Surtout depuis la plupart des applications PHP/SQL dans la nature sauvage configuré rarement des autorisations d'utilisateur SQL appropriées. Donc, la plupart des temps, l'attaquant peut faire une vidage de votre structure et avoir besoin de deviner.

La seule chose que je suis sûr, c'est que le script avec le nom d'utilisateur/mot de passe de connexion ne doit pas être hébergé sur le référentiel source de mon choix.

Beaucoup de projets se déplacent en fournissant une configuration d'échantillon, puis via leur logiciel de contrôle de version crée une règle qui empêche leur configuration d'être poussée au référentiel de contrôle de la version. Un exemple de ceci est qu'ils peuvent avoir un exemple de config appelé config-exemple.php et leur script de configuration renomme ceci sur config.php (ou crée à partir de zéro) dès que les informations sont disponibles. Et s'ils utilisent GitHub par exemple, citons A . Gittignore règle pour bloquer Config.php qui s'assurera qu'ils n'exposent pas accidentellement leur propre configuration.

Ce n'est actuellement pas open source, mais je envisage de la faire open source, de sorte que d'autres puissent corriger des bugs, l'améliorer ...

N'oubliez pas la sécurité lorsque vous faites cette déclaration. Les autres choses à propos de Open Source sont que d'autres peuvent repérer ce que vous ne pouvez ni ne résout ni l'améliorer. Et cela inclut la sécurité. Open Sourcing Votre projet pourrait potentiellement résoudre davantage de problèmes de sécurité qu'il expose.

2
Bacon Brad