2011-11-05 2 views
1

Pour l'instant, supposons que j'ai accès à mon propre serveur afin que je puisse écrire n'importe quel fichier index.html que je veux. Est-il possible de me permettre seulement d'appeler un seul script php sur le serveur. Par exemple, si je les scripts suivants dans le répertoire /var/www/:Est-il possible de limiter toutes les demandes de serveur à un script php?

divideByZero.php 
socialSecurityNumber.php 
blowUpAlderaan.php 
lindsayLohan.php 
login.php 

et je veux que je puisse faire

<form action="login.php" method="post">...</form> 

mais pas

<form action="blowUpAlderaan.php" method="post">...</form> 

Note: ce n'est pas spécifique à POST, il pourrait être GET ou xmlhttprequest.

La raison pour laquelle j'ai besoin de ceci est parce que je suis en train de mettre en place un site Web où les clients stockent leur page index.html et leurs scripts php sur leur propre compte Unix (sur le serveur). Pour leur permettre d'exécuter leurs scripts php avec leurs propres permissions, j'utilise suPHP. J'essaie d'éviter la situation où user1 délivre les éléments suivants à partir de leur page index.html

<form action="user2/blowUpAlderaan.php" method="post">...</form> 

et ils exécutent la fonction de quelqu'un d'autre. Si toutes les demandes sont passées par logn.php, je peux vérifier le nom du compte/l'identifiant de l'utilisateur et m'assurer d'invoquer uniquement son script s'il est bien le propriétaire de ce script.

+0

Je suis assez confiant ma question n'a pas de solution http://stackoverflow.com/a/9561335/654789 – puk

Répondre

1

Différentes solutions, en fonction de ce dont vous avez besoin.

Vous pouvez utiliser ModRewrite pour envoyer toutes les demandes via un contrôleur frontal. La plupart des systèmes et des frameworks CMS fonctionnent de cette manière.

Vous pouvez activer PHP uniquement pour des répertoires spécifiques.

Je ne suis pas vraiment sûr de ce que vous voulez, il semble que la personne A devrait être autorisée à exécuter un script donné, et la personne B ne devrait pas. Dans ce cas, vous devez d'abord comprendre comment votre serveur Web sait qui est qui.

+0

[suPHP] (http://www.suphp.org/Home.html) prend soin de 'qui est qui 'en exécutant des scripts en tant que propriétaire de ce script. Pour cette raison, je ne peux pas activer PHP uniquement pour certains répertoires. Je vais jeter un oeil à ModRewrite – puk

Questions connexes