Question

Dans un déploiement de production, vous n'auriez pas votre dossier / application dans le webroot public; Il ne faut qu'une seule erreur de doigt bâclé pour transformer des actifs commerciaux privés tels que les fichiers PHP en texte clair sur le Web. La Avancée et production Les instructions d'installation dans le livre décrivent comment isoler topologiquement le répertoire WebRoot, afin que vous puissiez faire des dossiers contenant des fichiers PHP lisibles uniquement par vous. Cette technique a très bien fonctionné pour moi depuis un certain temps - mais maintenant je veux utiliser et développer des plugins.

Le livre CakePHP omet la discussion des plugins dans les déploiements de production. Pour ceux d'entre vous qui utilisent CakePHP en production avec des plugins, comment rendre les actifs dans le répertoire Webroot d'un plugin donné accessible au public?

Créez-vous un dossier de plugins dans webroot puis SymLink Plugins / my_plugin_name au plugin webroot? Copiez-vous manuellement le dossier webroot du plugin dans webroot? Mordez-vous la balle et déplacez-vous simplement le dossier des plugins sur webroot? Utilisez-vous une sorte de plugin d'alimentation de contenu fantaisie?

Quelle est la meilleure solution?

Était-ce utile?

La solution

Cela me semble que vous devriez copier manuellement les fichiers du plugin webroot vers votre propre webroot. Si c'est en production, je suppose que vous n'allez pas allumer / désactiver le plugin (comme on pourrait le faire en développement), ce serait donc un processus ponctuel.

De plus, le faire de cette façon empêche vos actifs privés des dossiers accessibles au public, en maintenant la sécurité qui vous préoccupe.

D'autre part

Si le plugin est open source, prenez la solution facile et déposez toute cette ventouse dans le webroot. Si cela est compromis, vous ne devriez pas vraiment s'en soucier, car les fichiers sont de toute façon librement distribués.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top