ok autres solutions alternatives :
Alors dans ce cas pourquoi ne pas passer par un fichier temporaire generé en php (qui genere le script js a partir des parametres) et inclus ensuite avec un file_get_contents ? nan?
ok autres solutions alternatives :
Alors dans ce cas pourquoi ne pas passer par un fichier temporaire generé en php (qui genere le script js a partir des parametres) et inclus ensuite avec un file_get_contents ? nan?
Car c'est beaucoup plus lourd !
Mon fichier JS ne bouge jamais ! Il n'y a aucune modif à faire... Et encore une fois, si je généré le fichier JS en mettant les paramètres souhaitez dedans, qu'est-ce qui empêcherais encore une fois quelqu'un de faire le même script en modifiants ces paramètres ?
Comme je sens que c'est assez compliquer et que c'est dure à expliquer, voilà mon fichier JS :
Donc si en PHP je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function gup(name){ name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1]; } var param1 = gup('param1'); var param2 = gup('param2'); var param3 = gup('param3');
cela ne permet pas au visiteur de voir quels sont les paramètres...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 include "http://site.com/fichier.js?param1=truc¶m2=bidule¶m3=chose";
Seulement comme l'include ne marche pas j'ai essayé le fread mais sans résultat puisque ça ne marche pas...
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
alors pourquoi ne pas faire ce code js (la fonction gup) en fonction php ?? recupere le résultat et place dans variable js : var param1, etc... le reultat de la fonction php .. ou toujours pas bon??
Mais non...
Regarde, si je fais une fonction php, voilà ce que cela va générer :
Qu'est-ce qui empêche quelqu'un de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var param1 = 'truc'; var param2 = 'machin'; var param3 = 'chose';
???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var param1 = 'tralala'; var param2 = 'youhou'; var param3 = 'pirate';
Alors que là, comment pourrait-il le modifier ???
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
on ne pourra pas inserer de parametres a notre fonction php il ne pourront pas non plus voir les parametres passé en parametres a cette fonction....!!! et le retour de resultat que tu vas inserer dynamiquement dans tes variable javascript seront toujours visible !!! mais ça c normal !! Dans ce cas c'est un autre probleme change de technologie car tous ce qui dit js dit accessibilité client de toute façon....
Mais le pb n'est pas la, j'ai ma solution, je veux juste savoir pourquoi le php merde...
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
quand tu parle de php qui merde tu parle de quoi car il n'y en a pas dans ton code... si tu parle de ça :
include "http://site.com/fichier.php?truc=machin&bidule=chose";
alors sache que cette ligne ne fais qu'inclure les ligne de code contenu dans ce fichier !! elle ne l'exécute pas ce fichier on peut pas lui passer des paramètres pour inclure le résultat qui aurait pu être généré par ce code avec ces paramètres......
Ou alors tu a mal expliquer le pb ou je ne comprend pas désolé !!
ok mais c pareil pour le fopen... il n'exécute pas le code il ouvre juste ton fichier dans une variable . passer des paramètres est faux aux fichiers ne sert a rien !! cela ne marche pas comme ça !!!
génère un fichier temporaire et inclue le ensuite tu le supprime (c pas si lourd que ça!!
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
Bon j'ai réglé le pb, désolé, j'avais oublié qu'il fallait afficher le contenue après =_= Comme j'étais partis dans "include", je me suis dis que stream_get_content ferais de même...
Enfin bref, merci à tous pour votre aide...
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
Salut
Il manque un echo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <script> <?php $handle = fopen("http://le-site.com/pt33.js?truc=machin&bidule=chose", "rb"); $contents = stream_get_contents($handle); fclose($handle); // On génère le code JS obtenu echo $contents; ?> </script>
Mais il me semble qu'on t'a déjà expliqué qu'il est totalement inutile de "passer" des paramètres , car le code ne sera pas interprété, il sera juste récupéré, et uniquement ce qu'il y aura dans le fichier.
S'il y a des variable JS dans ce fichier inclus (par exemple) qui demande à être initialisé, alors essai comme ceci :
Mais écupérer un fichier distant, qui est un manque de sécurité, est finalement contradictoire du faite que c'est l'objectif visé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <script> var truc = "machin"; var bidule = "chose"; <?php $handle = fopen("http://le-site.com/pt33.js", "rb"); $contents = stream_get_contents($handle); fclose($handle); // On génère le code JS obtenu echo $contents; ?> </script>
Enfin, il me semble.
Le plus simple est de l'importer dans la page HTML, qui est plus simple et plus sécurisé.
Exemple :
Ici, aucun paramètre de transmis, et pas de fichier distant non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6<script type="text/javascript"> var truc = "<?php echo $var_php; ?>"; // Avec un contenu venant de Php var bidule = "chose"; </script> <script type="text/javascript" src="http://www.site.com/fichier.js"></script>
Ce ne serait pas plutôt quelque chose comme ci-dessus que tu rechercherais à faire ?
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
En effet, je ne l'ai vu qu'après coup, merci
Mais comment voulez-vous qu'un code JS soit interprété par du PHP Oo PHP c'est serveur, JS client, que voulez-vous dire par interprété ? C'est le client qui interprète le JS pas le serveur !!!
Faut. Enfin pas totalement. Si on fait comme tu dis à savoir var tuc = "machin"; n'importe qui pourras le modifier !!!
Et quel est le pb d'inclure un fichier distant puisque de toute façon comme cela est fait en php c'est transparent pour le client ?
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
Et bien non justement, ça serait grave sinon.Faut. Enfin pas totalement. Si on fait comme tu dis à savoir var tuc = "machin"; n'importe qui pourras le modifier !!!
Le code que je t'ai mis (donc le var = "machin") se trouve dans ton code, la page, ton fichier, et à part avoir les droits suffisants de le modifier (via FTP par exemple), personne d'autre ne pourra le faire.
Oui, ça je sais.Mais comment voulez-vous qu'un code JS soit interprété par du PHP Oo PHP c'est serveur, JS client, que voulez-vous dire par interprété ? C'est le client qui interprète le JS pas le serveur !!!
Toujours pour ce même code que je t'ai mis : var = "machin"; c'est du javascript non ?
Il pourra alors interprété, exploité par ton code JS que tu importe,par exemple.
De plus, rien empêche d'initialiser une variable JS par contenu généré par Php, c'est le cas que je t'es mis.
Autre exemple :
Une boite d'alerte JS affichera Coucou, salut :-).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php $coucou = "Coucou, salut :-)"; ?> <script> alert("<?php echo $coucou; ?>"); </script>
En somme, on génère du Javacript en Php, au même titre qu'on génère du HTML, du Css.
Tout ceci sera après interprété par le navigateur.
Pour ma part (donc à titre personnel), c'est un énorme manque de sécurité de permettre qu'un site distant puisse inclure des fichiers ce trouvant sur son espace d'hébergement.Et quel est le pb d'inclure un fichier distant puisque de toute façon comme cela est fait en php c'est transparent pour le client ?
Si sur le site autorisant l'import distant contient des fichiers php genre config (hote Bdd, username Bdd, mot de passe Bdd, etc ... ce qui est quasi certain d'ailleurs) et bien n'importe qu'elle autre développeur pourra l'inclure dans son code, et donc obtenir son contenu.
Autant dire qu'on pourra obtenir tout ce qu'on veut sur le site en question.
Je ne sais si tu t'en rend compte, mais ça me semble hyper "passoire" comme type d'autorisation.
Bref, les include() doivent s'arrêter à ce que seul Php sur le serveur soit autorisé à le faire, tout le reste, donc distant, ne pourra se faire que via HTTP, c'est le minimum je dirais.
En tout cas, (et ne le prends pas mal surtout), la solution que tu as adopté ne renforce strictement rien en terme de sécurité par rapport à un import classique.
En tout cas, je ne vois pas à quel niveau ça améliore.
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
Mais biensûre que non !
Qu'est-ce qui t'empêche de faire une page, ou tu fais un script comme ça :
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <script> var truc = "machin"; </script> <script src="http://le-site.com/fichier.js"></script>
Et donc le fichier "fichier?js" auras la variablr truc qui vaudras machin ! Donc gros pb de sécurité...
Et bien sûre que si ça augmente la sécu puisque l'utilisateur même en regardant le code source ne sauras pas que tel ou tel var aura à l'intérieur...
Donc niveau de sécu en plus
Ce n'est pas parce qu'un chemin prends la direction que l'on souhaite qu'il mène où l'on veut...
Trouver des inconvénients à Micro$oft, c'est comme faire une division par zéro, c'est infini...
je réagissais tout particulièrement du terme "modifié" que tu disais.Et bien sûre que si ça augmente la sécu puisque l'utilisateur même en regardant le code source ne sauras pas que tel ou tel var aura à l'intérieur...
Donc niveau de sécu en plus
Ce code ne peu pas être modifié, mais vu, oui.
Donc oui, sur le fond, mais dans la pratique non, car le code n'est pas interprété, donc les paramètres que tu tente de transmettre ne servent à rien.
Du coup, c'est un peu retour à la case départ.
Enfin, sauf erreur.
Le seul moyen de rendre dynamique ce code javascript, c'est d'intégrer les variables JS dans le code source de ta page.
Aussi, il ne faut pas perdre de vu que lorsque que tu auras fait le echo (le petit oubli en question) du contenu inclus, ce code sera visible dans la page HTML, au même titre que tous les autres codes HTML.
Du coup, Je ne vois ou est le gain coté sécurité.
Mais même en admettant que je me trompe, l'aspect sécurité que tu pense obtenir me semble démesuré par rapport à celui provoqué et (fortement) dégradé en activant allow_url_fopen.
Et puis pour finir, un code Javascript c'est du coté client, il sera donc toujours visible quoi qu'on fasse.
Donc si on manipule des données sensibles, il vaut mieux le faire autrement que via du JS.
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager