Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRER LE CODE SOURCE D'UNE PAGE PROTÉGÉE PAR HTACCESS


Information sur la source

Catégorie :Réseau & Internet Classé sous : htaccess, authentification, web, page Niveau : Initié Date de création : 10/07/2006 Date de mise à jour : 11/07/2006 14:16:00 Vu / téléchargé: 6 245 / 810

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Voilà ça fait plusieurs jours que je cherche comment récupérer le code source d'une page protégée par htaccess (login et mot de passe), sans rien trouver.
Après plusieurs heures de recherche j'ai enfin trouvé, donc je publie cette source qui sera certainement très utile pour certains :)

Objet de connexion nécessaire : un winsock
 

Source

  • Dim Port As Integer
  • Dim Codes As String
  • Dim Login As String
  • Dim Password As String
  • Login = "votre_login"
  • Password = "votre_password"
  • Port = 80 'port HTTP
  • Codes = Encoder(Login & ":" & Password)
  • 'La fonction Encoder est une fonction à développer (cryptage Base64).
  • 'Si les codes d'accès sont déjà connus, vous pouvez simplement utiliser un convertisseur par exemple à cette adresse :
  • 'http://yansanmo.no-ip.org/contenu/?id=214
  • 'Rappel : le code doit être encrypté sous la forme de Login:Mot_de_passe
  • ''''''''''PREMIER CAS : CONNEXION A UN ROUTEUR''''''''''
  • Dim Adresse_IP As String
  • Adresse_IP = "192.168.0.1" 'IP de votre routeur, à modifier selon le cas.
  • Winsock.Connect Adresse_IP, Port
  • Private Sub Winsock_Connect()
  • Text1.Text = ""
  • Winsock.SendData "GET / HTTP/1.1" & vbCrLf & "User-Agent: Navigateur" & vbCrLf & _ 'nom du navigateur client (facultatif :) )
  • "Host: " & Adresse_IP & vbCrLf & "Authorization: Basic " & Codes & vbCrLf & vbCrLf 'envoi des codes cryptés, plus double retour chariot
  • End Sub
  • Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
  • Dim data As String
  • Winsock.GetData data
  • Text1.Text = Text1.Text + data 'data contient donc le code source.
  • End Sub
  • ''''''''''SECOND CAS : CONNEXION A UN SERVEUR WEB''''''''''
  • Dim Serveur As String
  • Serveur = "www.machin.com" 'Adresse du site
  • Winsock.Connect Serveur, Port
  • Private Sub Winsock_Connect()
  • Dim Page As String
  • Page = "http://www.machin.com/page.html/" 'avec le slash final
  • Winsock.SendData "GET " & Page & " HTTP/1.0" & vbCrLf & _ 'demande de récupération d'information + définition du protocole ainsi que sa version
  • "User-Agent: Navigateur" & vbCrLf & _ 'nom du navigateur client (facultatif :) )
  • "Accept: */*" & vbCrLf & "Accept: text/html" & vbCrLf & _ 'type de données acceptées
  • "Authorization: Basic " & Codes & vbCrLf & vbCrLf 'envoi des codes cryptés, plus double retour chariot
  • End Sub
  • Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
  • Dim data As String
  • Winsock.GetData data
  • Text1.Text = Text1.Text + data 'data contient donc le code source.
  • End Sub
  • ''''''''''''''''''''
Dim Port As Integer
Dim Codes As String
Dim Login As String
Dim Password As String

Login = "votre_login"
Password = "votre_password"

Port = 80 'port HTTP
Codes = Encoder(Login & ":" & Password)
'La fonction Encoder est une fonction à développer (cryptage Base64).

'Si les codes d'accès sont déjà connus, vous pouvez simplement utiliser un convertisseur par exemple à cette adresse :
'http://yansanmo.no-ip.org/contenu/?id=214
'Rappel : le code doit être encrypté sous la forme de Login:Mot_de_passe


''''''''''PREMIER CAS : CONNEXION A UN ROUTEUR''''''''''

Dim Adresse_IP As String
Adresse_IP = "192.168.0.1" 'IP de votre routeur, à modifier selon le cas.

Winsock.Connect Adresse_IP, Port

Private Sub Winsock_Connect()
Text1.Text = ""
Winsock.SendData "GET / HTTP/1.1" & vbCrLf & "User-Agent: Navigateur" & vbCrLf & _ 'nom du navigateur client (facultatif :)  )
    "Host: " & Adresse_IP & vbCrLf & "Authorization: Basic " & Codes & vbCrLf & vbCrLf 'envoi des codes cryptés, plus double retour chariot

End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
    Dim data As String
    Winsock.GetData data
    Text1.Text = Text1.Text + data 'data contient donc le code source.
End Sub



''''''''''SECOND CAS : CONNEXION A UN SERVEUR WEB''''''''''

Dim Serveur As String
Serveur = "www.machin.com" 'Adresse du site

Winsock.Connect Serveur, Port

Private Sub Winsock_Connect()

Dim Page As String
Page = "http://www.machin.com/page.html/" 'avec le slash final

Winsock.SendData "GET " & Page & " HTTP/1.0" & vbCrLf & _ 'demande de récupération d'information + définition du protocole ainsi que sa version
    "User-Agent: Navigateur" & vbCrLf & _ 'nom du navigateur client (facultatif :)  )
    "Accept: */*" & vbCrLf & "Accept: text/html" & vbCrLf & _ 'type de données acceptées
    "Authorization: Basic " & Codes & vbCrLf & vbCrLf 'envoi des codes cryptés, plus double retour chariot

End Sub

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
    Dim data As String
    Winsock.GetData data
    Text1.Text = Text1.Text + data 'data contient donc le code source.
End Sub

''''''''''''''''''''

Conclusion

Informations supplémentaires :
http://fr.wikipedia.org/wiki/HTTP_Authentification

Une page de conversion rapide Base64 :
http://yansanmo.no-ip.org/contenu/?id=214

Je n'ai peut être pas été très très clair mais c'est assez complet, donc si vous avez une question n'hésitez pas et je serai plus précis :)

PS : pour une raison inconnue, il peut arriver qu'il faille plusieurs essais pour que ça marche :P.
Cela dit, la théorie est là.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

10 juillet 2006 23:20:44 :
ajout de zip
11 juillet 2006 14:16:00 :
màj générale

Commentaires et avis

signaler à un administrateur
Commentaire de jack le 10/07/2006 20:06:56 administrateur CS

Et pourquoi pas nous faire un zip avec tout dedans ?

signaler à un administrateur
Commentaire de Vedlen le 10/07/2006 20:08:27

Ok, je vais même faire sous forme de fonction pour plus de portabilité..

signaler à un administrateur
Commentaire de katsankat le 11/07/2006 11:53:36

Salut :)
Trop d' à peu-près.

Les Data_Arrival() sont pas bon parce qu'ils acceptent bien les paquets mais au bout du compte on ne se retrouve qu' avec le dernier.

Pourquoi le premier est HTTP /1.0 et le second HTTP 1.1 ? Gardes 1.1 pour les deux, on est en 2006.

Toujours côté RFC2616, spécifier le Host n'a strictement rien à voir avec le routeur: l'info Host est exclusivement destinée au système HTTP du serveur ça n' a rien à voir avec le client qui a un routeur.

Le "double retour charriot" est en réalité un double CRLF. Ce n'est pas pour respecter les normes réseau mais pour se conformer au protocole HTTP.

Je sais c'est difficile à accepter toutes ces remarques c'est juste pour éviter de transmettre et véhiculer des informations erronées.

Il faudrait revoir tout ça et pourquoi pas déposer une source complète qui soit testable juste pour vérifier que ça marche.

Bonne prog l' ami

signaler à un administrateur
Commentaire de Vedlen le 11/07/2006 14:10:35

Les version de HTTP sont différentes car j'ai remarqué (je ne sais pas pourquoi) que pour la 1.1 il y avait des problèmes pour le 2e cas.

Pour ce qui est de la gestion des paquets oui j'aurais pu faire un
Text1.Text = Text1.Text + data

L'en-tête Host m'a été données par Fiddler et j'ai vu que ça marchait.. Donc je change pas une équipe qui gagne ! :)

Pour finir, je ne vois pas ce que je peux rajouter pour que ma source soit davantage complète...

signaler à un administrateur
Commentaire de grandzebu le 04/06/2007 14:08:18

Très fort ! Ca marche du premier coup
Thank's a lot
GZ

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment attendre la fin du chargement d'une page web avant de continuer [ par jeromax ] Saluttout est dans la questionmerci d'avance page web input [ par Farix ] Serait il possible d'extraire des informations sur une page web et de leslires ensuite dans mon programme ?Ex:créer un fichier à partir de la pageweb recupere le code source d'une page web via le webbrowser [ par BomberMan ] comment recupere le code source d'une page web via le composant webbrowser ou via l'api ou autre mode.merci d'avance cherche a créer une page web recuperant des donées access ou permettant d'en rajouter [ par titilim ] En fait je veux créer une page qui restera sur mon pcj'ai une base de donées access et je souhaite la faire s'afficher ds ma page webpuis je souhaite WebBrowser nouvelle page [ par Chuck ] J'ai créer un program ds lequel il y a un WebBrowser. Je voudrait que lorsqu'un utilisteur clique sur un lien, la nouvelle page souvre avec un logicie Code vb sur les page web. [ par nullspace ] Je voudrais savoir s'il existe un moyen facile de mettre en forme sur une page web le code vb avec les couleurs adaptées.Merci. Comment lire la source d'une page web ? [ par Clem ] Comment lire la source d'une page web comme www.vbfrance.com ? comment recuperer une info via une page web ? [ par touns1 ] BonjourComment, après avoir récuperer un code source d'un page web (http://www. ... ),chercher puis prendre une info présise de ce code (une date, un Les fichiers .ocx [ par tobas ] Voila je ne sais pas comment on se saire des fichier .ocx ds les page web. Car je fait des programes en .exe et j'aimerai les metre ds une page web, m [Seulement pour les bons:]champs texte de page web, et vb... [ par pekinio ] voila je voulais savoir si il existait sous vb, la possibilité de manipuler des champs texte d'une page web affichée dans un web browser, par ex, plus


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.