MOTEUR DE SERVEUR FTP OBJET ET FONCTIONNEL TESTE SOUS FILEZILLA

celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007 - 7 avril 2005 à 23:11
cs_JLN Messages postés 371 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 17 juin 2013 - 24 févr. 2007 à 12:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30606-moteur-de-serveur-ftp-objet-et-fonctionnel-teste-sous-filezilla

cs_JLN Messages postés 371 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 17 juin 2013
24 févr. 2007 à 12:10
Salut à tous,

Je vais essayer ce serveur FTP puique tous ceux qui l'on fait avant moi en disent du bien, dommage que la dernière question soit resté sans réponse...

@+ JLN
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
20 juin 2006 à 20:10
J'ai une question: est-il possible de mettre un login/mdp donnant accès à tous les lecteurs du PC? Donc en fait accès au poste de travail

Merci d'avance pour ta réponse
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
18 juin 2006 à 18:13
Super source qui fonctionne à merveille. C'est exactement ce que je cherchais; merci à toi
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
15 avril 2005 à 10:07
Tu ne m'as pas embêté, tu as souligné une faille importante.
Sans toi, elle n'aurait surement jamais été décelée.

Merci
@+
Celiphane
FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
12 avril 2005 à 19:34
oki lool
bon je ne connaissais pas cette substilité
il faut reconnaitre que ce client se fait un peu vieux....
sinon j'ai plus a rajouter....et par conséquent j'arrete de t'embeter ;)
bonne prog
@+FearBlue
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
12 avril 2005 à 19:10
alors ça mon bon FearBlue, c'est uniquement dû à ton client FTP, le problème de déplacement dans les dossiers avec des espaces !

J'ai rencontré le même problème dans mes tests : en fait, le client FTP de dos demande une petite subtilité pour ce type de dossier, exemple :

tu tapes cd
puis à l'invite de dossier, tu mets ton dossier à espace : "mon dossier"
SANS omettre les guillemets !!! """"""" !!!
Et là, ça passe !

C'est pas un problème du serveur, j'ai vérifié ! Si tu mets pas de guillemets, le client FTP dos n'envoie que la première partie du dossier taper, en occultant la partie qui suit le premier espace. (constaté par débogage)

D'ailleurs, ça marche partout ailleurs... c'est bien ce client... un tantinet ancien ;-)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
12 avril 2005 à 18:56
;-)
Mopii9 Messages postés 91 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 23 mai 2005
12 avril 2005 à 16:26
40ko/s en download avec un adsl 512 sa dépasse toute mes espérance mon tranfert de fichier codé en vb téléchargé a 5ko/s et 6ko/s dans ses bon jours... nikelllll krome !!!!!!!!!!!!!
FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
12 avril 2005 à 13:17
source testé et c bon:)
Probleme bien résolu
Sinon j'en ai trouvé un autre :s
1)Impossible de se déplacer dans des repertoire avec un espace(exmple Mes Documents)
Voila j'arrete de t'embeter ;)
@+
FearBlue
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
12 avril 2005 à 01:19
A savoir également que je n'ai pas non plus interdit l'utilisation des "/../"
Juste que je les recherche, et lorsque je les trouve, je les supprime ainsi que le dossier qui les précédaient : ainsi, on obtient toujours un chemin absolu, reflêtant la demande qui a été faite même si elle était formulée en relatif.

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
12 avril 2005 à 01:16
Voilà, FearBlue, je me suis trouvé 5 minutes et la faille a été colmatée, et l'archive remplacé !
Merci.

Pour info, voici le code que j'ai écrit afin de prévenir la confusion :

Dim p As Long
Do
p = InStr(1, strPath, "\..")
If p <> 0 Then strPath = Left$(strPath, InStrRev(strPath, "", p - 1)) & Right$(strPath, Len(strPath) - p - 3)
Loop Until p = 0

Je l'ai rajouté dans la procédure IsInHomeDir, qui est toujours appelé, dans le listage d'un dossier comme pour tout autre opérations (upload etc...)

Le chemin strPath étant en Byref, il est par la même corrigé et transformé en chemin absolu.

Merci.
@+
Celiphane
FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
10 avril 2005 à 20:57
c'est avec plaisir :)
parceque c'est vrai que cette faille la , on la retrouve bcp dans les premieres versions des serveurs ftp meme tres connue donc pas de honte a avoir ;)
Jte souhaite bonne chance
@+FearBlue
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
10 avril 2005 à 20:34
(pour info, les autres clients que j'avais testé ne s'étaient jamais comporté comme ça, j'ignorais donc que le cas pouvais se produire, merci encore !)

;)

@+
Celiphane
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
10 avril 2005 à 20:34
Merci pour ton complément d'informations.
En effet, il n'y a rien de compliqué.

En fait, j'ai l'impression que ton client FTP utilise des chemins relatifs pour naviguer, plutôt que des requêtes en absolue.

Par exemple, lorsqu'on est dans "c:\Documents and Settings\fearblue" comme dans ton exemple,
plutôt que de demander à aller dans "C:", il demande directement "..\.." ce qui équivaut à remonter de 2 niveaux.

C'est ceci qui doit perdre mon algorithme, et autoriser l'hérésie ;)

Je vais rectifier ça le plus rapidement possible, dès que j'en aurais le temps ! Merci pour ces précieuses précisions !

@+
Celiphane
FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
10 avril 2005 à 12:17
slt celiphane !!
Donc je vais t'expliquer ce que j'ai remarqué
apres a voir lancé le Serveur Ftp
Je me connect a celui ci avec le client FTP dos.
Voici deja mon fichier default.txt

--------------------------------------------------------
pseudo; password; c:\
flo; flo; c:\Documents and Settings\fearblue\
utilisateur2; pass2; c:\windows\
-----------------------------------------------------------

Voici le log

Connecté a 127.0.0.1
220 Celiphane FTP server
Utilisateur (127.0.0.1:(none)) : flo
331 Username OK, need password.
Mot de passe :
230 User logged in.
cd ../..
250 Directory changed
ftp> dir
200 Port command successful.
150 About to open connection.

ET TICI IL Y APPARAIT TOUS LES FICHIERS DE LA RACINE DU DISQUE C:\

comme tu peux le constaler je n'utilise pas de techniques tres compliquer , juste une remonté dans l'arboressance

En esperant que ca puisse t'aider
Bonne chance
et bonne prog
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
9 avril 2005 à 20:28
Salut FearBlue,

merci pour ton commentaire, en revanche, je ne comprends pas le problème que tu as rencontré...

En effet, le serveur EST programmé pour empêcher d'aller dans les niveau inférieur à la racine autorisée.
Par exemple, lorsque je me logge à l'aide du nom d'utilisateur "utilisateur1" et du mot de passe "pass1", le dossier racine est "c:\Documents and Settings" et il est impossible de revenir plus bas (à C:\ en l'occurance pour cet exemple).

Maintenant, peut être que tu as utilisé une technique particulière, une "bidouille / faille", pour que ce cela se produise. Dans ce cas, je te serais reconnaissant de me dire comment, afin que je puisse corrigé.
Sinon, fourni moi le log de ton client FTP afin de me convaincre que ca se passe comme tu me le dis.

Regarde, cette fonction qui est implémenté empêche bien ce genre de situation facheuse :

Private Function IsInHomeDir(ByRef strPath As String) As Boolean
IsInHomeDir (Left$(strPath, Len(HomeDir)) HomeDir)
End Function

Elle renvoie true si le chemin demandé se trouve dans la racine, et donc cela autorise l'action demandée (changement de dossier par exemple), sinon elle renvoie false et interdit l'action demandée (revenir plus bas que la racine).

Merci de me répondre,
@+
Celiphane
FearBlue Messages postés 149 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 26 octobre 2008
9 avril 2005 à 12:01
tres interessant et tres bien codé !!
par contre il y a un probleme de securité au niveau des repertoire default de chaque utilisateur (rootdir)
En effet,on peut remonter dans l'arboressance et donc acces a tt le disque dur.....
Voila sinon c'est excellent :)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
8 avril 2005 à 22:36
Rassure toi Mopii9, je sais parfaitement que tu sais te servir de ton client ;)

Je plaisantais simplement.

Quoi qu'il en soit, je te remercie pour tes sympathiques compliments.

Je viens de regarder ce "problème" du "default.txt"; j'avoue ne pas bien comprendre pourquoi il ne le prend pas directement chez toi, puisqu'il le fait chez moi (xp pro), cela dit, avec du recul, je veux bien avouer une faiblesse dans le code qui y pointe (que je vais corriger en uploadant une nouvelle archive sitôt ce commentaire validé), et voici se problème de pointage :
le programme fait appel à "default.txt", censé être dans le dossier de l'executable, lorsque qu'aucun autre fichier de config n'est passé en paramètre à la procédure LoadParameters. Or, il se trouve que j'appelle directement le fichier "default.txt", mais je suppose que de manière plus sûr, j'aurais dû (et je vais le faire comme susdit) faire pointer sur le fichier en utilisant un chemin complet, et ne pas miser sur la relativité des chemins comme c'est le cas actuellement (apparement valide chez moi mais pas partout ! ne rien négliger !). Ainsi, dans le "nouveau" code de pointage que je vais mettre d'ici peu, on ne trouvera plus :

If FromFile "" Then FromFile "default.txt"
--mais--
If FromFile "" Then FromFile App.Path & IIf(Right$(App.Path, 1) = "\", "", "\") & "default.txt"

Ce qui assurera le pointage, chemin absolu oblige.

Merci de ta participation.

@+
Celiphane
Mopii9 Messages postés 91 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 23 mai 2005
8 avril 2005 à 22:23
Celiphane,
Je te présente mes excuses pour avoir douté de ton programme lol, il marche bien c'était juste le défault.txt qui FAISAIT planté il faudrai le virer.... enfin bref ton prog est très bien fait autant sur le plan pratique que au niveau du codage.

Et je sais me servir de mon client FTP c'est pas gentil de me dire sa :(

Conclusion : Si vous n'arrivez pas à vous connecter vous supprimez le défault.txt, puis vous le creez dans un autre répertoire en changeant le chemin dans le code (pour moi sa a marché bien que je ne comprenne pas bien pourquoi . . .)



Bonne prog à tous
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
8 avril 2005 à 21:46
salut Moppi9,
on va avoir un conflit tous les deux ;)
(je plaisante bien sûr)

Après avoir lu ton commentaire, j'ai immédiatement téléchargé FTP expert 3, je viens de lancé mon serveur, j'ai mis localhost, pseudo, password, et... ca marche (comme sous Filezilla, l'Explorer / Internet Explorer, NetDrive, WebDrive, qui m'ont également servi de base d'essai, maintenant je sais grâce à toi que FTP expert l'accepte aussi, quoi de plus normal, le serveur respecte le protocole à la lettre).

N'étant pas assez gonflé pour te demander si tu sais bien te servir de ton client (ce qui serait VRAIMENT gonglé n'est-ce pas ? Bien que je sois sur que certains n'hésiterai pas à te rembarrer comme ça, lol, les méchants !), je me contenterai de supposer que tu as mal orthographié le password peut être, qui doit être saisi vraiment tel quel, "password", sensitive case include.

Sache également que j'obtiens le même log si je retire le fichier de configuration des utilisateurs, ce qui est bien normal, puisque dans ce cas AUCUN n'utilisateur n'existe et personne ne peut donc se connecter (personne n'en a le droit ! Pas d'users !).

Je te serais gré de retester sachant cela, ne retire pas le default.txt, ou alors renomme le différement, mais dans ce cas, passe en paramètre le nouveau nom avec son chemin à la fonction LoadParameters du Module Mprinc... c'est un minimum ;)

Peut-être n'as tu simplement pas extrait les fichiers texte, voulant éliminer les "fichiers messages" inclus par le site vbfrance, et du coup, tu as aussi omis le fichier default.txt ! (bon surement en fait :o] )

;)

@+
Celiphane
ps: tester convenablement svp, et dites moi ce que vous pensez du code après ;)
Mopii9 Messages postés 91 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 23 mai 2005
8 avril 2005 à 20:59
Connexion à localhost sur le port 21. Tentative 1 de 3...
220 Celiphane FTP server
USER pseudo
331 Username OK, need password.
PASS *****
530 User refused.
Délai de 30 secondes avant la prochaine tentative...


Impossible de le faire marcher...
pseudo : pseudo
mdp : password

testé avec FTP Expert 3
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
7 avril 2005 à 23:11
Pas de remarques ?

@+
Celiphane