2014-07-05 2 views
0

J'ai une gestion des thèmes qui est des fichiers HTML prédéfinis pour mon CMS que j'écris. J'ai un dossier appelé thèmes puis à l'intérieur qui sont les fichiers zip pour les thèmes. J'ai une fonction unzip qui va ajouter le thème à la page public_html pour que le site fonctionne correctement. Mon problème est que si je vais à l'url, il va télécharger le fichier zip, en ajoutant un .htaccess au dossier des thèmes devrait protéger cela des gens qui téléchargent le zip. Autre question, au lieu de télécharger 300 dossiers zip, existe-t-il un autre moyen de gérer les modèles? Peut-être sur un autre serveur de site Web qui téléchargera ensuite à ces utilisateurs public_html.Fichiers Zip à lire uniquement par le serveur

Par exemple:

Vous allez sur mon site de CMS (kms.io [exemple]) leur recherche d'un thème, puis ils cliquer ajouter au site. Il l'ajoutera automatiquement à leur serveur. Ou éventuellement dans le panneau d'administration de CMS KMS afficher les fichiers des autres serveurs en itérant. Fondamentalement, je me demande si je peux communiquer entre mon serveur et leur serveur afin qu'ils puissent télécharger les modèles que je leur fournis.

Je n'ai pas besoin d'un tutoriel étape par étape ou quoi que ce soit, juste un concept de base que je peux examiner, ou s'il existe déjà un tutoriel là-bas un lien aussi bien. J'ai googlé ceci et obtenir des résultats amusants qui n'ont rien à faire ce que je veux. Raison pour cela, je ne suis pas sûr de ce que j'appelle vraiment cette action.

Refresher

Au lieu de télécharger les fermetures éclair dans le package KMS, puis-je communiquer avec un serveur de base (mon serveur sites) d'un autre serveur utilisateurs afin qu'ils puissent télécharger les packages de modèle que le KMS offrira. Presque comme Wordpress je suppose, jamais utilisé pour être honnête.

Répondre

2

Je pourrais vous parler de l'ajout basic authentication dans htaccess pour le dossier themes, ou sur l'utilisation de mod-rewrite pour bloquer l'accès aux fichiers zip ...

Mais si vous ne voulez vraiment pas que quiconque de toucher ce dossier, la solution vraie (et recommandée pour votre code) est la suivante:

Déplacez le dossier au-dessus de la racine Web.

Vous pouvez toujours y accéder dans votre code, mais le reste du monde ne sera pas en mesure de le toucher. En ce qui concerne le stockage, il existe de nombreuses façons de l'approcher. Il n'y a rien pour vous empêcher par exemple de stocker les fichiers zip en tant que blobs dans une base de données (sur votre serveur ou une autre) que les utilisateurs peuvent rechercher.

+1

+1 pour la racine web ci-dessus, j'aime garder tout mon code au-dessus de l'emplacement accessible sur le web et exposer uniquement un fichier index.php. – ArtisticPhoenix

+0

Voir Je n'ai jamais utilisé Blob, donc je devrais lire quelque chose là-dessus. Et le déplacer est une bonne idée à coup sûr. Mais ce serait sur mon propre serveur afin que les utilisateurs de KMS qui téléchargent la source à télécharger vers leur source n'aient jamais à télécharger 300 zips. Alors, comment puis-je aller sur l'authentification afin que je puisse accéder au serveur des utilisateurs, maintenant je ne cherche pas à accéder à quoi que ce soit spécifiquement je veux juste qu'ils puissent télécharger le zip (que ma fonction décompresser extrait les fichiers) modèle qu'ils veulent sans brouiller leur serveur. – EasyBB

+0

'blob' signifie Binary Large Object, c'est l'un des types de champs disponibles dans la base de données MySQL, fréquemment utilisé avec PHP. L'utilisateur n'a aucune idée que vous parlez à une base de données, que ce soit sur votre serveur ou un autre. Si cela semble être une option intéressante à rechercher, trouvez un petit aperçu de PHP + MySQL. :) – zx81

Questions connexes