Résolu Editer une page html ou php en ligne directement sur mon site

Statut
N'est pas ouverte pour d'autres réponses.

adel_xf

Premium
Inscription
23 Mai 2015
Messages
522
Réactions
251
Points
12 054
Voilà j'aimerai pouvoir editer une page html ou php en ligne directement sur mon site Est-cee que c'est possible?
blink.gif

(un ptit exemple : admettons que j'ai une page admin.php et une page index.html est-ce que sur la page admin.php c'est possible de modifier le code de la page index.html? ) voilà merci bcp de répondre
 

Switch.

Codeur Web à ton service | > Python
Premium
Inscription
13 Janvier 2013
Messages
2 956
Réactions
968
Points
6 491
Voilà j'aimerai pouvoir editer une page html ou php en ligne directement sur mon site Est-cee que c'est possible?
blink.gif

(un ptit exemple : admettons que j'ai une page admin.php et une page index.html est-ce que sur la page admin.php c'est possible de modifier le code de la page index.html? ) voilà merci bcp de répondre
Oui c'est faisable
 

Axx67

Membre
Inscription
16 Février 2015
Messages
352
Réactions
236
Points
9 366
Comment je pourait faire cela ?

Il te faut une interface d'administration pour faire ça.
Puis en SQL il y a une table 'contenu_site' par exemple.

Faut être un minimum à l'aise avec PHP et MySQL afin de faire ce genre de choses..
Parce que si le contenu de ta page est directement lu depuis la base de données, si ce n'est pas sécurisé, tu t'exposes à des failles.


Voilà!
 

→W∃aK ←

Membre
Inscription
22 Mars 2012
Messages
2 618
Réactions
1 668
Points
5 583
Dans le genre dégueu, c'est pas mal comme solution ::):
Dans le genre répondre à la question posée, c'est le plus précis ::):
Le mec demande comment éditer une page compléte depuis son administration et non pas un bout (ce qui s'apparente dans mon esprit à un browser de fichier), il ne demande donc pas à faire un système de templating avec une db.
 
Dernière édition:

Axx67

Membre
Inscription
16 Février 2015
Messages
352
Réactions
236
Points
9 366
Dans le genre répondre à la question posée, c'est le plus précis ::):
Le mec demande comment éditer une page compléte depuis son administration et non pas un bout (ce qui s'apparente dans mon esprit à un browser de fichier), il ne demande donc pas à faire un système de templating avec une db.
Il faut également comprendre le besoin réel de la demande. Dans le cas présent, c'est de pouvoir modifier le contenu d'une page.
C'est donc pour de l'affichage, et non de l'interaction directe à priori.

Faut pas juste balancer des solutions à la va-vite.

Ecrire un fichier php via cette méthode, c'est absolument pas secure. Je ne suis même pas sur qu'une conf par défaut de PHP permet ce genre de choses (à confirmer).

Quelque soit la méthode, écrire un fichier .php directement depuis une interface d'admin c'est dangereux (quelque soit la méthode d'ailleurs).
On écrit dans une base de données (ou un XML éventuellement) et on affiche.
 

→W∃aK ←

Membre
Inscription
22 Mars 2012
Messages
2 618
Réactions
1 668
Points
5 583
Il faut également comprendre le besoin réel de la demande. Dans le cas présent, c'est de pouvoir modifier le contenu d'une page.
C'est donc pour de l'affichage, et non de l'interaction directe à priori.

Faut pas juste balancer des solutions à la va-vite.

Ecrire un fichier php via cette méthode, c'est absolument pas secure. Je ne suis même pas sur qu'une conf par défaut de PHP permet ce genre de choses (à confirmer).

Quelque soit la méthode, écrire un fichier .php directement depuis une interface d'admin c'est dangereux (quelque soit la méthode d'ailleurs).
On écrit dans une base de données (ou un XML éventuellement) et on affiche.

Le besoin réel est effectivement de modifier le contenu d'une page, on entend par contenu le code et non du texte.
L'auteur veut donc d'après ce qu'il dit modifier entièrement les fichiers à la manière d'un navigateur de fichiers dans son panneau d'administration.
Je cite : "un ptit exemple : admettons que j'ai une page admin.php et une page index.html est-ce que sur la page admin.php c'est possible de modifier le code de la page index.html?" on parle de modifier le CODE et non de modifier le CONTENU.

Je ne balance pas de solution à la va vite, nuance je balance la solution dont la demande de l'auteur se rapproche le plus simplement.

Cette façon est utilisée sur de nombreux CMS dans l'ajout de plugins notamment et n'est pas du tout secure si tu ne sais pas utiliser correctement CHMOD en effet.
Elle est autorisée par défaut dans la configuration de PHP (t'aurais quand même pu feuilleter la doc que j'ai envoyé, elle revient en fait à utiliser fopen, fwrite et fclose).

Que ça soit dangereux ou pas l'auteur demande quelque chose, je lui réponds de la façon la plus approchée de ce qu'il recherche.
Si un mec veut changer la couleur de ses jantes, tu vas pas lui nettoyer les phares après.
Et puis c'est pas plus dangereux que d'écrire du PHP de ta façon en stockant directement le contenu du fichier en base de donnée ou dans un XML et utiliser eval pour interpréter le PHP.
 

Axx67

Membre
Inscription
16 Février 2015
Messages
352
Réactions
236
Points
9 366
Le besoin réel est effectivement de modifier le contenu d'une page, on entend par contenu le code et non du texte.
L'auteur veut donc d'après ce qu'il dit modifier entièrement les fichiers à la manière d'un navigateur de fichiers dans son panneau d'administration.
Je cite : "un ptit exemple : admettons que j'ai une page admin.php et une page index.html est-ce que sur la page admin.php c'est possible de modifier le code de la page index.html?" on parle de modifier le CODE et non de modifier le CONTENU.

Je ne balance pas de solution à la va vite, nuance je balance la solution dont la demande de l'auteur se rapproche le plus simplement.

Cette façon est utilisée sur de nombreux CMS dans l'ajout de plugins notamment et n'est pas du tout secure si tu ne sais pas utiliser correctement CHMOD en effet.
Elle est autorisée par défaut dans la configuration de PHP (t'aurais quand même pu feuilleter la doc que j'ai envoyé, elle revient en fait à utiliser fopen, fwrite et fclose).

Que ça soit dangereux ou pas l'auteur demande quelque chose, je lui réponds de la façon la plus approchée de ce qu'il recherche.
Si un mec veut changer la couleur de ses jantes, tu vas pas lui nettoyer les phares après.
Et puis c'est pas plus dangereux que d'écrire du PHP de ta façon en stockant directement le contenu du fichier en base de donnée ou dans un XML et utiliser eval pour interpréter le PHP.

Je cite également : "un ptit exemple : admettons que j'ai une page admin.php et une page index.html est-ce que sur la page admin.php c'est possible de modifier le code de la page index.html?"

On modifie quoi là ? du php ou du HTML ?
Du html, donc du contenu.. Le HTML ne peut pas, et ce d'aucune manière, représenter un risque pour le serveur qui l'héberge.

Il veut modifier du html, la solution la plus propre est donc de faire une interface d'administration avec un éditeur (éventuellement du wysiwyg).
Il veut pas créer un site web depuis son interface d'admin hein ? Il veut changer le contenu d'une page, comme le permet un CMS justement.

Puis les utilisateurs qui viennent demander de l'aide ici sont, pour la plupart, des débutants. Tu balances une solution :
1. qu'il galèrera a mettre en place
2. qu'il ne sécurisera pas (il a sans doute même jamais entendu parlé des chmods)

Il faut donc également s'adapter à l'interlocuteur. Les 3/4 des codes que j'ai vu ici (même sur des tutos) ne sont pas très optimisés, mais on est pas sur du très haut niveau, ce sont des débutants qui bidouillent, qui découvrent. Si t'as plus de connaissances, faut plutôt les orienter convenablement que de balancer un simple lien de la doc php.

Ah, sinon, perso, j'ai jamais parlé de stocké du php en base de données, c'est une interprétation (fausse) de ta part. Et surtout pas de l'interpréter avec la fonction eval comme tu le suggères.

Extrait de la doc PHP :
Attention La construction de langage eval() est très dangereuse car elle autorise l'exécution de code PHP arbitraire. Son utilisation est vivement déconseillée. Si vous avez soigneusement vérifié qu'il n'y a pas d'autres options que de l'utiliser, gardez une attention toute particulière à ne pas y passer de données provenant d'un utilisateur sans les avoir précédemment validées minutieusement.



@+
 
Dernière édition:
Inscription
24 Juillet 2015
Messages
180
Réactions
60
Points
1 496
Je me permet d'intervenir même si Axx67 a tout dit !

n'appel pas la fonction avec eval qui va exécute ton code html comme php, se qui risque d’être super dangereux pour ton site,

utilise les même function que des cms (echo, ou print) avec un htmlentities Pour évité tout problème, d’exécution de code, après regarde au niveau mysql, PDO,ect...., pour modifier le texte


voilà un petit exemple sans requete mysql car je suis pas sur mon pc

PHP:
<?php
$contenu = "Mon titre que je veux <?php echo 'pas de faille'; ?>";
?>
<html>
<head>
<title><?php echo htmlentities($contenu); ?></title>
</head>
</html>

désolé si je te donne pas de code avec une requete PDO ou mysql ou autre je te le ferais des que j'aurais du temps
 

→W∃aK ←

Membre
Inscription
22 Mars 2012
Messages
2 618
Réactions
1 668
Points
5 583
Je cite également : "un ptit exemple : admettons que j'ai une page admin.php et une page index.html est-ce que sur la page admin.php c'est possible de modifier le code de la page index.html?"

On modifie quoi là ? du php ou du HTML ?
Du html, donc du contenu.. Le HTML ne peut pas, et ce d'aucune manière, représenter un risque pour le serveur qui l'héberge.

Il veut modifier du html, la solution la plus propre est donc de faire une interface d'administration avec un éditeur (éventuellement du wysiwyg).
Il veut pas créer un site web depuis son interface d'admin hein ? Il veut changer le contenu d'une page, comme le permet un CMS justement.

Puis les utilisateurs qui viennent demander de l'aide ici sont, pour la plupart, des débutants. Tu balances une solution :
1. qu'il galèrera a mettre en place
2. qu'il ne sécurisera pas (il a sans doute même jamais entendu parlé des chmods)

Il faut donc également s'adapter à l'interlocuteur. Les 3/4 des codes que j'ai vu ici (même sur des tutos) ne sont pas très optimisés, mais on est pas sur du très haut niveau, ce sont des débutants qui bidouillent, qui découvrent. Si t'as plus de connaissances, faut plutôt les orienter convenablement que de balancer un simple lien de la doc php.

Ah, sinon, perso, j'ai jamais parlé de stocké du php en base de données, c'est une interprétation (fausse) de ta part. Et surtout pas de l'interpréter avec la fonction eval comme tu le suggères.

Extrait de la doc PHP :




@+
Sauf que juste avant il dit : "Voilà j'aimerai pouvoir editer une page html ou php", ce qui peut aussi vouloir dire modifier les instructions d'une page PHP.

Si le mec veut modifier du contenu, cela va de soit qu'il doit utiliser un système de template lié à un model, mais si il veut faire (comme je l'ai comprit) un panel admin où on peut éditer les fichiers à la manière d'un explorateur (pas forcément hyper sécurisé) il devra se tourner vers les fonctions d'édition de fichier tel que file_put_contents par exemple qui est un 3 en 1 ou éventuellement faire une sorte de folder virtuel en stockant le code brut dans la db et en utilisant eval mais c'est encore une fois très dangereux.

Pour le lien que j'ai envoyé, c'est le type de réponse parfaite pour un débutant (si il veut effectivement bien créer un browser-like) non seulement le mec apprends à se démerder avec une doc mais en plus il apprendra à cherche, plutôt que de lui balancer un code tout fait ou de lui donner des instructions influencés par ta vision de la programmation, là c'est neutre le mec se démerde avec la doc comme un grand, même si il débute il y a l'équivalent en français.

Et puis enfin, si on suis ton raisonnement pour les débutants et la sécurité, on ne devrait même plus les aider en PHP brut vu les nombreux vices de ce langage, il faut que le mec se crée tout seul une approche de la sécurité indépendamment ce ce qu'on pourra lui dire, ça permettra pour lui de réaliser concrètement ce qu'est la sécurité web.

PS : "Du html, donc du contenu.. Le HTML ne peut pas, et ce d'aucune manière, représenter un risque pour le serveur qui l'héberge." Pour le serveur pas forcément, mais pour le site en lui même et ses administrateurs si : mal escapé à l'affichage dans ton template ou à l'enregistrement dans ton model (dépend de la façon de travailler) ça peut être fatale et ouvrir une porte à une XSS persistante (vol de cookies, AJAX à tout va sur le domaine & bypasser les filtres CSRF ...)
 
Dernière édition:

Axx67

Membre
Inscription
16 Février 2015
Messages
352
Réactions
236
Points
9 366
Sauf que juste avant il dit : "Voilà j'aimerai pouvoir editer une page html ou php", ce qui peut aussi vouloir dire modifier les instructions d'une page PHP.

Si le mec veut modifier du contenu, cela va de soit qu'il doit utiliser un système de template lié à un model, mais si il veut faire (comme je l'ai comprit) un panel admin où on peut éditer les fichiers à la manière d'un explorateur (pas forcément hyper sécurisé) il devra se tourner vers les fonctions d'édition de fichier tel que file_put_contents par exemple qui est un 3 en 1 ou éventuellement faire une sorte de folder virtuel en stockant le code brut dans la db et en utilisant eval mais c'est encore une fois très dangereux.

Pour le lien que j'ai envoyé, c'est le type de réponse parfaite pour un débutant (si il veut effectivement bien créer un browser-like) non seulement le mec apprends à se démerder avec une doc mais en plus il apprendra à cherche, plutôt que de lui balancer un code tout fait ou de lui donner des instructions influencés par ta vision de la programmation, là c'est neutre le mec se démerde avec la doc comme un grand, même si il débute il y a l'équivalent en français.

Et puis enfin, si on suis ton raisonnement pour les débutants et la sécurité, on ne devrait même plus les aider en PHP brut vu les nombreux vices de ce langage, il faut que le mec se crée tout seul une approche de la sécurité indépendamment ce ce qu'on pourra lui dire, ça permettra pour lui de réaliser concrètement ce qu'est la sécurité web.

PS : "Du html, donc du contenu.. Le HTML ne peut pas, et ce d'aucune manière, représenter un risque pour le serveur qui l'héberge." Pour le serveur pas forcément, mais pour le site en lui même et ses administrateurs si : mal escapé à l'affichage dans ton template ou à l'enregistrement dans ton model (dépend de la façon de travailler) ça peut être fatale et ouvrir une porte à une XSS persistante (vol de cookies, AJAX à tout va sur le domaine & bypasser les filtres CSRF ...)

Editer un fichier PHP en ligne, autant utiliser un client FTP directement.. C'est bien plus secure et ça tu me dira pas le contraire (ou alors c'est vraiment que t'es obstiné).

Ensuite, si pour toi balancer un lien de la doc PHP (influencée là aussi par ta vision de la prog et ta compréhension tu sujet) sans la moindre explication c'est une réponse "parfaite" c'est que en effet, on voit pas du tout le dev de la même manière. Mais j'suis p'tetre trop vieux pour comprendre cette vision "moderne". J'ai pas balancé un code tout fait, mais donné un début d'explication afin de créer une piste de reflexion, c'est ça mon raisonnement.

Pour ce qui est des vices du langage de PHP.. Pour en connaitre plusieurs, aucun n'est parfait. Je ne parlerais pas de vices, mais je dirais plutôt que PHP est beaucoup plus permissif, c'est différent.

PS: J'ai bien parlé du serveur qui l'héberge.. Je suis pas rentré dans les détails d'un XSS. Mais si tu veux on peut parler sécurité du code, du serveur, etc pendant des heures hein ?
 
Dernière édition:

→W∃aK ←

Membre
Inscription
22 Mars 2012
Messages
2 618
Réactions
1 668
Points
5 583
Editer un fichier PHP en ligne, autant utiliser un client FTP directement.. C'est bien plus secure et ça tu me dira pas le contraire (ou alors c'est vraiment que t'es obstiné).

Ensuite, si pour toi balancer un lien de la doc PHP (influencée là aussi par ta vision de la prog et ta compréhension tu sujet) sans la moindre explication c'est une réponse "parfaite" c'est que en effet, on voit pas du tout le dev de la même manière. Mais j'suis p'tetre trop vieux pour comprendre cette vision "moderne". J'ai pas balancé un code tout fait, mais donné un début d'explication afin de créer une piste de reflexion, c'est ça mon raisonnement.

Pour ce qui est des vices du langage de PHP.. Pour en connaitre plusieurs, aucun n'est parfait. Je ne parlerais pas de vices, mais je dirais plutôt que PHP est beaucoup plus permissif, c'est différent.

PS: J'ai bien parlé du serveur qui l'héberge.. Je suis pas rentré dans les détails d'un XSS. Mais si tu veux on peut parler sécurité du code, du serveur, etc pendant des heures hein ?

Editer un fichier PHP en ligne, autant utiliser un client FTP directement.. C'est bien plus secure et ça tu me dira pas le contraire (ou alors c'est vraiment que t'es obstiné). => t'a des personnes qui veulent pouvoir éditer leurs fichiers depuis leur site sans devoir passer par FTP (et plus généralement gérer leur serveur, d'où d'ailleurs l'origine des shell PHP tel que C99 et compagnie qui sont désormais utilisés à 99% par des lamers). C'est d'ailleurs arrivé pour certains de mes clients.

Ensuite, si pour toi balancer un lien de la doc PHP (influencée là aussi par ta vision de la prog et ta compréhension tu sujet) sans la moindre explication c'est une réponse "parfaite" c'est que en effet, on voit pas du tout le dev de la même manière. Mais j'suis p'tetre trop vieux pour comprendre cette vision "moderne". J'ai pas balancé un code tout fait, mais donné un début d'explication afin de créer une piste de reflexion, c'est ça mon raisonnement. => rien de mieux que d'apprendre à une personne à apprendre par elle même.

Donner des explications trop précise anéantis le travail de reflexion et surtout de recherche, à chaque fois que le mec aura besoin de faire un nouveau truc il créera un topic pour que quelqu'un lui mâche la recherche, comme tu le vois dans cette section les 3/4 des topics n'ont fait aucun travail de recherche (je pense aux "comment créer un tool cod", "comment se connecter à mysql en c#" et compagnie). La meilleure solution reste d'aiguiller la personne en la laissant se démerder, dans le cas de figure où la personne voulait "éditer une page PHP ou HTML depuis une autre page PHP" ce qui correspond le plus à un aiguillage concis est un lien vers la fonction file_put_contents qui remplis parfaitement le rôle demandé dans le topic.

Dans le cas où le mec veut stocker du contenu, tu lui envois simplement le terme à recherche en l'occurence il suffit à l'auteur du sujet de taper "php tuto template" et de trouver plus de 5 000 tutoriels en français qui expliquent comment faire, à la limite lui lister 2/3 liens :
->
->
(sauf que là tu lui mâches le travail de recherche, donc à la limite tu lui donne juste le mot clef)

Forcément la personne va suivre un tuto où le travail de reflexion sera totalement mâché ainsi que la traduction en algorithme mais il aura au moins comprit comment mener un travail de recherche et petit à petit pourra trouver comment réaliser X ou Y chose en recherchant et un jour pourra réfléchir elle même sans s'appuyer sur une reflexion d'autrui.

Pour ce qui est des vices du langage de PHP.. Pour en connaitre plusieurs, aucun n'est parfait. Je ne parlerais pas de vices, mais je dirais plutôt que PHP est beaucoup plus permissif, c'est différent. => J'ai peu d'amis qui ont débuté par RoR ou Django et beaucoup qui ont démarré par PHP (même si on va comparer un langage à part entière et deux frameworks ce qui est assez complexe, on parlera plus de technologie pour simplifier la chose et on entendra par PHP le langage sans aucun framework ajouté) .

Pourtant après avoir utilisé les 3 (PHP depuis plus de 7 ans, Django depuis moins d'un ans et Rails depuis plus de 3 ans et plusieurs frameworks sous PHP) j'aurais vraiment adoré recommencer mon apprentissage et apprendre le PHP puis les nombreux frameworks que je connais après savoir utiliser RoR ou Django.

Commencer par apprendre Rails ou Django dès le début impose non seulement l'apprentissage d'un nouveau langage (le Ruby qui est au passage un langage très compliqué pour un débutant, et le Python) ainsi que l'apprentissage d'un nouveau framework et d'un tas de notions tel que le MVC mais selon mon point de vue (et beaucoup d'autre de développeurs avec qui j'ai pu m'entretenir) une fois que tu as acquéris ces notions là sur Rails ou Django tu pourras les transcoder beaucoup plus facilement sur PHP.

L'avantage indéniable d'apprendre d'abord une des technologies tel que RoR ou Django est que le langage que tu vas apprendre est déjà basé sur une notion d'objet, donc tout va te paraitre plus logique lorsque tu vas passer sur le framework ensuite ça sera comme une sorte de "retour aux sources" et de nombreux concepts du langages sont incroyablement bien exploités dans le framework.

Par contre pour PHP la notion d'objet est très très récente bien qu'elle puisse presque rivaliser avec les plus grands aujourd'hui elle est néanmoins assez difficile à assimiler pour un débutant qui sort de 2 mois d'apprentissage de procédural. Une fois que t'a appris le PHP tu vas devoirs apprendre et comprendre la notion d'objet avant de te lancer dans un framework. C'est donc plus complexe de débuter par PHP + un famework divers (Laravel, Symfony, Cake ...).

En plus de ça l'aubaine pour un débutant sur RoR ou Django est que dès lors que tu utilises un framework (c'est valable ici pour quelque soit le framework, écrit en Ruby, Python, PHP, NodeJS etc, etc) logiquement la sécurité est gérée en grande partie par le framework. Du coup tu vas démarrer par un truc sécurisé, en étant dans l'ombre dans un premier temps puis au fil de l'avancement de ton apprentissage tu vas comprendre que fait un filtre CSRF ici, pourquoi l'ORM est invulnérable aux attaques SQL, etc, etc.

Certains frameworks te laissent la liberté d'utiliser leurs systèmes de sécurités mais beaucoup les imposent (notamment ceux que j'ai cité), du coup tu te retrouves avec une application sécurisée : ok dans un premier temps tu seras peut être dans ta bulle et ne comprendra pas réellement quelles failles sont comblés mais au fur et à mesure comme dit plus haut tu comprendras les principaux concepts.

En débutant avec PHP, tu vas devoir te taper de très nombreux cours sur la sécurité. De base ton application ne sera pas sécurisée si tu ne la sécurise pas toi même évidemment vu que tu n'utilises aucun framework : tu vas devoir rester toujours sur tes gardes et apprendre énormément de notions en sécurité web et sécuriser ton application au fil du temps, alors que dérrière le mec qui aura démarré par RoR ou Django sera encore en train d'apprendre les concept de sécurité mais non pas comment les implémenter mais pourquoi ils sont déjà implémentés du coup dès que tu switchera sur du PHP brut (même si c'est très peu probable que tu développes ton application en PHP brut après avoir appris comment fonctionne un modèle MVC avec Django ou Ruby) tu seras intégrer les divers principes de sécurité que tu as vus précédemment en quelques recherches sur la doc, tu seras exactement où protéger quoi.

Voilà donc une petit ébauche sur ma vision de PHP pour un débutant (bien sûr tu peux débuter PHP en étant très prudent et en sécurisant ton application correctement, ou même essayer de débuter directement par un framework et en apprenant PHP rapidement comme tu aurais fais avec Python lors de l'apprentissage de Django, mais selon mon expérience et de nombreux autre avis ça sera beaucoup plus compliqué et beaucoup moins divertissant).

En gros tout ça pour dire que
PHP est dangereux pour un débutant, c'est certes un langage magnifique qui permet de réunir à la fois les plus grand sites du monde et les plus petits projets pour les codeurs du dimanche (comme disait le créateur de PHP sur une mail-list il me semble) mais tu devras faire très attention aux principes de sécurité élémentaire, alors que si tu débutes directement par Django ou Rails, tu devras apprendre un langage (comme tu aurais fait pour PHP) puis à utiliser le framework mais au final les deux vont se rapprocher énormément (même concept d'objet de base) et l'apprentissage sera quasiment aussi simple que pour le PHP brut avec au final une bien meilleure approche de la sécurité web.

PS: J'ai bien parlé du serveur qui l'héberge.. Je suis pas rentré dans les détails d'un XSS. Mais si tu veux on peut parler sécurité du code, du serveur, etc pendant des heures hein ? => Sauf que encore une fois dire "Le HTML ne peut pas, et ce d'aucune manière, représenter un risque pour le serveur qui l'héberge." peut porter confusion au débutant qui se dit alors que l'exécution arbitraire de HTML par le client n'est pas dangereuse.

Sans parler du fait qu'une XSS peut ouvrir la porte à une attaque plus importante (imaginons que le mec ait un Wordpress sur le même domaine, tu pourras faire un script qui lance un AJAX sur le wp-admin pour ajouter un plugin et foutre un shell PHP, il suffira de faire ouvrir l'exploit par un admin connecté et là le serveur sera directement impacté : la cause un HTML arbitraire qui ne devait à la base pas être dangereux pour le serveur (bien entendu lui même n'impactera pas directement le serveur mais est très dangereux pour le serveur dans la continuité d'une attaque).

Bref je vais plus m'étaler sur le sujet, j'ai du taff.
 
Dernière édition:

Axx67

Membre
Inscription
16 Février 2015
Messages
352
Réactions
236
Points
9 366
Editer un fichier PHP en ligne, autant utiliser un client FTP directement.. C'est bien plus secure et ça tu me dira pas le contraire (ou alors c'est vraiment que t'es obstiné). => t'a des personnes qui veulent pouvoir éditer leurs fichiers depuis leur site sans devoir passer par FTP (et plus généralement gérer leur serveur, d'où d'ailleurs l'origine des shell PHP tel que C99 et compagnie qui sont désormais utilisés à 99% par des lamers). C'est d'ailleurs arrivé pour certains de mes clients.

Ensuite, si pour toi balancer un lien de la doc PHP (influencée là aussi par ta vision de la prog et ta compréhension tu sujet) sans la moindre explication c'est une réponse "parfaite" c'est que en effet, on voit pas du tout le dev de la même manière. Mais j'suis p'tetre trop vieux pour comprendre cette vision "moderne". J'ai pas balancé un code tout fait, mais donné un début d'explication afin de créer une piste de reflexion, c'est ça mon raisonnement. => rien de mieux que d'apprendre à une personne à apprendre par elle même.

Donner des explications trop précise anéantis le travail de reflexion et surtout de recherche, à chaque fois que le mec aura besoin de faire un nouveau truc il créera un topic pour que quelqu'un lui mâche la recherche, comme tu le vois dans cette section les 3/4 des topics n'ont fait aucun travail de recherche (je pense aux "comment créer un tool cod", "comment se connecter à mysql en c#" et compagnie). La meilleure solution reste d'aiguiller la personne en la laissant se démerder, dans le cas de figure où la personne voulait "éditer une page PHP ou HTML depuis une autre page PHP" ce qui correspond le plus à un aiguillage concis est un lien vers la fonction file_put_contents qui remplis parfaitement le rôle demandé dans le topic.

Dans le cas où le mec veut stocker du contenu, tu lui envois simplement le terme à recherche en l'occurence il suffit à l'auteur du sujet de taper "php tuto template" et de trouver plus de 5 000 tutoriels en français qui expliquent comment faire, à la limite lui lister 2/3 liens :
->
->
(sauf que là tu lui mâches le travail de recherche, donc à la limite tu lui donne juste le mot clef)

Forcément la personne va suivre un tuto où le travail de reflexion sera totalement mâché ainsi que la traduction en algorithme mais il aura au moins comprit comment mener un travail de recherche et petit à petit pourra trouver comment réaliser X ou Y chose en recherchant et un jour pourra réfléchir elle même sans s'appuyer sur une reflexion d'autrui.

Pour ce qui est des vices du langage de PHP.. Pour en connaitre plusieurs, aucun n'est parfait. Je ne parlerais pas de vices, mais je dirais plutôt que PHP est beaucoup plus permissif, c'est différent. => J'ai peu d'amis qui ont débuté par RoR ou Django et beaucoup qui ont démarré par PHP (même si on va comparer un langage à part entière et deux frameworks ce qui est assez complexe, on parlera plus de technologie pour simplifier la chose et on entendra par PHP le langage sans aucun framework ajouté) .

Pourtant après avoir utilisé les 3 (PHP depuis plus de 7 ans, Django depuis moins d'un ans et Rails depuis plus de 3 ans et plusieurs frameworks sous PHP) j'aurais vraiment adoré recommencer mon apprentissage et apprendre le PHP puis les nombreux frameworks que je connais après savoir utiliser RoR ou Django.

Commencer par apprendre Rails ou Django dès le début impose non seulement l'apprentissage d'un nouveau langage (le Ruby qui est au passage un langage très compliqué pour un débutant, et le Python) ainsi que l'apprentissage d'un nouveau framework et d'un tas de notions tel que le MVC mais selon mon point de vue (et beaucoup d'autre de développeurs avec qui j'ai pu m'entretenir) une fois que tu as acquéris ces notions là sur Rails ou Django tu pourras les transcoder beaucoup plus facilement sur PHP.

L'avantage indéniable d'apprendre d'abord une des technologies tel que RoR ou Django est que le langage que tu vas apprendre est déjà basé sur une notion d'objet, donc tout va te paraitre plus logique lorsque tu vas passer sur le framework ensuite ça sera comme une sorte de "retour aux sources" et de nombreux concepts du langages sont incroyablement bien exploités dans le framework.

Par contre pour PHP la notion d'objet est très très récente bien qu'elle puisse presque rivaliser avec les plus grands aujourd'hui elle est néanmoins assez difficile à assimiler pour un débutant qui sort de 2 mois d'apprentissage de procédural. Une fois que t'a appris le PHP tu vas devoirs apprendre et comprendre la notion d'objet avant de te lancer dans un framework. C'est donc plus complexe de débuter par PHP + un famework divers (Laravel, Symfony, Cake ...).

En plus de ça l'aubaine pour un débutant sur RoR ou Django est que dès lors que tu utilises un framework (c'est valable ici pour quelque soit le framework, écrit en Ruby, Python, PHP, NodeJS etc, etc) logiquement la sécurité est gérée en grande partie par le framework. Du coup tu vas démarrer par un truc sécurisé, en étant dans l'ombre dans un premier temps puis au fil de l'avancement de ton apprentissage tu vas comprendre que fait un filtre CSRF ici, pourquoi l'ORM est invulnérable aux attaques SQL, etc, etc.

Certains frameworks te laissent la liberté d'utiliser leurs systèmes de sécurités mais beaucoup les imposent (notamment ceux que j'ai cité), du coup tu te retrouves avec une application sécurisée : ok dans un premier temps tu seras peut être dans ta bulle et ne comprendra pas réellement quelles failles sont comblés mais au fur et à mesure comme dit plus haut tu comprendras les principaux concepts.

En débutant avec PHP, tu vas devoir te taper de très nombreux cours sur la sécurité. De base ton application ne sera pas sécurisée si tu ne la sécurise pas toi même évidemment vu que tu n'utilises aucun framework : tu vas devoir rester toujours sur tes gardes et apprendre énormément de notions en sécurité web et sécuriser ton application au fil du temps, alors que dérrière le mec qui aura démarré par RoR ou Django sera encore en train d'apprendre les concept de sécurité mais non pas comment les implémenter mais pourquoi ils sont déjà implémentés du coup dès que tu switchera sur du PHP brut (même si c'est très peu probable que tu développes ton application en PHP brut après avoir appris comment fonctionne un modèle MVC avec Django ou Ruby) tu seras intégrer les divers principes de sécurité que tu as vus précédemment en quelques recherches sur la doc, tu seras exactement où protéger quoi.

Voilà donc une petit ébauche sur ma vision de PHP pour un débutant (bien sûr tu peux débuter PHP en étant très prudent et en sécurisant ton application correctement, ou même essayer de débuter directement par un framework et en apprenant PHP rapidement comme tu aurais fais avec Python lors de l'apprentissage de Django, mais selon mon expérience et de nombreux autre avis ça sera beaucoup plus compliqué et beaucoup moins divertissant).

En gros tout ça pour dire que
PHP est dangereux pour un débutant, c'est certes un langage magnifique qui permet de réunir à la fois les plus grand sites du monde et les plus petits projets pour les codeurs du dimanche (comme disait le créateur de PHP sur une mail-list il me semble) mais tu devras faire très attention aux principes de sécurité élémentaire, alors que si tu débutes directement par Django ou Rails, tu devras apprendre un langage (comme tu aurais fait pour PHP) puis à utiliser le framework mais au final les deux vont se rapprocher énormément (même concept d'objet de base) et l'apprentissage sera quasiment aussi simple que pour le PHP brut avec au final une bien meilleure approche de la sécurité web.

PS: J'ai bien parlé du serveur qui l'héberge.. Je suis pas rentré dans les détails d'un XSS. Mais si tu veux on peut parler sécurité du code, du serveur, etc pendant des heures hein ? => Sauf que encore une fois dire "Le HTML ne peut pas, et ce d'aucune manière, représenter un risque pour le serveur qui l'héberge." peut porter confusion au débutant qui se dit alors que l'exécution arbitraire de HTML par le client n'est pas dangereuse.

Sans parler du fait qu'une XSS peut ouvrir la porte à une attaque plus importante (imaginons que le mec ait un Wordpress sur le même domaine, tu pourras faire un script qui lance un AJAX sur le wp-admin pour ajouter un plugin et foutre un shell PHP, il suffira de faire ouvrir l'exploit par un admin connecté et là le serveur sera directement impacté : la cause un HTML arbitraire qui ne devait à la base pas être dangereux pour le serveur (bien entendu lui même n'impactera pas directement le serveur mais est très dangereux pour le serveur dans la continuité d'une attaque).

Bref je vais plus m'étaler sur le sujet, j'ai du taff.

T'es un ouf toi.. ^^'

Tu m'en voudras pas, mais j'ai survolé un peu. Je connais pas Django, mais je connais suffisament le PHP, NodeJS, SQL, NoSQL, Perl, C#, C++... Et quelques autres que j'ai abordé sans forcément les avoir poussés (Java, Python, Ruby, Objective-C etc..). J'suis pas la pour faire un concours de taille de b***s hein ? Du PHP j'en fais depuis une douzaine d'années, mais bref.

Tu as donc mal utilisé le mot "vice" dans ton précédent message, mais qu'importe. PHP est effectivement très permissif.. Et c'est justement ce côté là qui en a fait le langage le plus populaire et qui a permis a pleins de mecs de se lancer dans le développement web, tu crois pas ? Aujourd'hui, PHP est un très bon outil s'il est bien utilisé.

Puis tu te contredis un peu non ? Tu dis balancer un lien pour que le mec apprenne tout seul, et après tu dis que l'inconvénient de PHP est de devoir se taper des cours...
Quelque soit le langage abordé de toute façon, il y a un apprentissage. On devient pas dev en lisant 3 tutos sur internet.

Pour ce qui est des failles XSS.. si on pousse les choses jusqu'au bout, tout est faillibile, puisque monté par l'homme (exemple avec la hacking team début juillet).

Voilà, j'mets plus ou moins fin à la discussion ici (parce que moi aussi j'ai du taff).. Mais si tu veux on peut échanger par skype à l'occas' !
 
Dernière édition:
Statut
N'est pas ouverte pour d'autres réponses.
Haut