Problème d’utilisation de la fonction « include » pour les adresses absolues

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d’utilisation de la fonction « include » pour les adresses absolues

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par saveus » 16 mai 2019, 21:29

hello,
sur le serveur "utilisateur" si les utilisateurs n'ont pas un acces "root" , une autre solution est de créer sous répertoire qui as seulement des droits uniquement pour l'utilisateur www-data (www-data étant l'utilisateur dédié au serveur apache).

tu crée un répertoire ,dans se répertoire tu met ton fichier a inclure avec la connexion a la base sur ton serveur.
puis tu modifie les droits pour tout ce qui ce trouve dans ce répertoire :

Code : Tout sélectionner

chown -R www-data:www-data ./mon-repertoire chmod -R 700 ./mon-repertoire
ton repertoire et tout ce qui se trouve dedans ne serra plus accesible que par "root" et "www-data"

Ensuite sur ton serveur MYSQL il faudra créer un utilisateur ayant accès a ta base avec l'ip du serveur "utilisateur". enfin dans ton fichier a inclure il faudra définir la connexion MYSQL vers ton serveur.






pour le cas ou ton serveur "utilisateur" est sous windows c'est a peu près le meme principe ; et pareillement il faudra créer un répertoire uniquement utilisable avec le compte sous lequel ton serveur web tourne , si par exemple si c'est IIS , le nom du compte ressemble , de tete , a quelque chose comme "IUSER_INTERNET". enfin dans ta page php a inclure il faudra utiliser un connecteur sois un connecteur mysqli sois un connecteur ODBC pour se connecter a ta base en ayant a préalable installer :https://dev.mysql.com/downloads/connector/odbc/, a la place de MYSQLI ( https://www.php.net/manual/fr/book.uodbc.php )

si tu utilise un serveur WAMP il faut activer le démarrage en temps que services windows , et le mieux est de creer un utilisateur dédié et modifier les services pour qu'ils se lancent avec le dit utilisateur et modifier les droits en consequence sur les repertoire web.


et enfin dans tout les cas si les utilisateurs on un accès "root" sous linux , ou "administrateur" sous windows , quoi que tu fasse meme avec SOAP et REST , un utilisateur ayant un des connaissances avancés pourra se débrouiller pour aller taper dans ta base. car rien n'empeche que quiconque , copie ta page ailleurs sur le serveur , modifie la dite page pour récupérer non pas un enregistrement , mais, toute ta base en modifiant les requetes SOAP, et lance la dite page dans un navigateur.
c'est pour ca qu'on as inventer les droits utilisateur... ;-) ;-)

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par Wilouis » 16 mai 2019, 16:11

Ok. Merci beaucoup. Je pense que je vais opter pour REST dans ce cas

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par Saian » 14 mai 2019, 20:05

Salut, je pense que tu peux t'orienter vers une API SOAP ou une API REST parce qu'à priori tu ne pourras pas garder tes codes secrets en utilisant l'include étant donné que dans ce cas l'adresse incluse doit retourner le code.
Quand au choix entre SOAP et REST je ne saurai te dire qu'elle serait la meilleur solution dans ton cas. Tu pourrais même mettre en place ton propre système.
En tout cas tu n'as à priori pas d'autre choix que de mettre en place un système permettant l'échange des données entre les 2 serveurs.

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par Wilouis » 14 mai 2019, 19:11

1) Dans le cas présent, les 2 serveurs sont sur Linux. Mais j’aimerais qu’on prenne aussi le cas où l’un est sous Linux et l’autre sous Windows ; et le cas où les 2 sont sous Windows

2) Concernant les données sensibles, elles seront stockées dans la base de données.

En fait, je veux seulement mettre les fichiers php des codes traitant les requêtes SQL sur mon serveur et les connectés aux fichiers php de base de l’application installée sur le serveur de l’utilisateur

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par saveus » 11 mai 2019, 16:25

pour orienter ma réponse tes serveurs sont sous linux , ou sous windows ?
autre question les données "sensible" sont uniquement dans la base ou dans la base et dans les fichiers php ?

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par Wilouis » 10 mai 2019, 21:07

Je ne suis pas vraiment un débutant en php. Sauf que je n’ai jamais eu à connecter avant 2 fichiers php installés sur 2 serveurs différents. Merci de me proposer une alternative, c’est-à-dire une API. Peut-être que je vais devoir apprendre l’API Rest. Mais si je pouvais trouver les directives et codes spécifiques, cela me permettrait d’aller plus vite.

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par @rthur » 10 mai 2019, 10:11

Tu as lu trop vite la doc.

Si tu fais un include d'un fichier distant, ça va récupérer le contenu du fichier (comme le ferai ton navigateur web, c'est important à comprendre) et seulement ensuite essayer d’interpréter ce qu'il a récupéré comme si c'était du code PHP.

:arrow: Dans tous les cas ce n'est pas une bonne pratique et je te déconseille très très fortement de faire ainsi, surtout que tu sembles débutant en PHP.

Réfléchis à une autre architecture pour ton programme, via une API pour échanger des données entre les 2 serveurs par exemple.

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par Wilouis » 10 mai 2019, 01:16

Ok. Merci pour votre reponse. Je viens de voir votre lien. Je vois qu’ils ont suggéré la fonction readfile(). Je viens donc de l’insérer dans mon code mais je vois que ça ne reconnait pas les requêtes de connexion php/MySQL se trouvant dans le fichier distant.php (sur le serveur #2). N’y a-t-il pas un autre moyen de faire cela ?

Il s’agit d’une application que je développe en php. Je veux garder certains codes secrets sur mon serveur dans des fichiers php qui seront inclus dans des fichiers php de base installés sur le serveur des utilisateurs de mon application.

Re: Problème d’utilisation de la fonction « include » pour les adresses absolues

par @rthur » 09 mai 2019, 23:20

Un bon point de départ est la page de la doc de la fonction include() qui est très complète, avec notamment le grand cadre rouge d'alerte de sécurité :-D
https://www.php.net/manual/fr/function.include.php

Problème d’utilisation de la fonction « include » pour les adresses absolues

par Wilouis » 09 mai 2019, 23:15

Salut. J’aimerais savoir comment faire pour utiliser la fonction « include » dans le cas où le fichier appelant et le fichier appelé sont sur 2 serveurs différents ?

Par exemple :
Le fichier test.php (hébergé sur le serveur #1), renferme le code suivant :
<?php include("https://www.monsite.com/distant.php"); ?>

Et le fichier "distant.php" est hébergé sur le serveur #2

Merci déjà pour votre aide.