Sichere Verbindung?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

Hallo Leute,

damit wir ein Beispiel haben, greife ich auf mein früheres erstelltes Thema auf.

Code: Alles auswählen

import requests
import sys
import time

# Fill in your details here to be posted to the login form.
payload = {
'username': 'test_user',
'password': 'test_password'
}
url = 'http://www.metalflirt.de/community/login'

# Use 'with' to ensure the session context is closed after use.
# Session used to handle cookies
with requests.Session() as c:
# here is the login URL, and the data we want to submit
c.post(url, data=payload)

# An authorised request.
# test it by accessing hidden page
r = c.get('http://www.metalflirt.de/community/moshpit')

# Here it will tests the login, to make sure
# we already logged in into the system
log_status = payload["username"] in r.content
print log_status
#print 'cookies befor clearing', requests.utils.dict_from_cookiejar(c.cookies)
#c.cookies.clear()
#print 'cookies after clearing', requests.utils.dict_from_cookiejar(c.cookies)
if log_status == True:
time.sleep(5)
c.get('http://www.metalflirt.de/community/logout')
print r.content
else:
print r.content
Hier in diesem Skript wird eine unverschlüsselte Verbindung zum Server aufgebaut, richtig? An dieser Stelle frage ich mich, ob dies nicht gefährlich ist? Beim Anmelden schicke einige wichtige und vertrauliche Daten los, damit requests mich auf dieser Seite anmelden kann. Ich dachte dann dabei an das hauseigene Modul namens ss oder an das Modul pyOpenSSL. Bevor ich mich aber an Versuche heranmache, mir eine SSL-Verbindung einzurichten, wollte ich euch erst einmal fragen.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Requests unterstützt HTTPS.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

@ Das Ich: Das heißt, ich kann das Skript so belassen und muss mich nicht darum fürchten, dass ich vertrauliche Daten in das weite Netz schleudere?
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Sophus: das heißt, wenn Du eine sichere Verbindung willst, solltest Du auch HTTPS benutzen.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

@Sirius3: Das bedeutet auch, dass die Betreiberseite https anbietet oder? Ich verstehe nämlich so, dass ich in der Adresszeile dann anstatt http nun https reinschreiben muss. Also anstatt http://www.metalflirt.de/community/login muss nun https://www.metalflirt.de/community/login hingeschrieben werden.

Nun wollte ich mein obiges Beispiel ausprobieren, und bekomme auf einmal folgende Meldung:
Traceback (most recent call last):
File "D:\Dan\Python\xarphus\examples\log_in_web.py", line 5, in <module>
import requests
File "C:\Python27\lib\site-packages\requests\__init__.py", line 58, in <module>
from . import utils
File "C:\Python27\lib\site-packages\requests\utils.py", line 26, in <module>
from .compat import parse_http_list as _parse_list_header
File "C:\Python27\lib\site-packages\requests\compat.py", line 39, in <module>
import cookielib
File "C:\Python27\lib\cookielib.py", line 38, in <module>
from calendar import timegm
ImportError: cannot import name timegm
Dabei hat requests wunderbar funktioniert.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Da `calendar` Teil der Standardbibliothek ist, scheint etwas mit deiner Installation nicht zu stimmen. Kann es sein, dass ein eigenes Modul so heisst?
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

@cofi: Mein eigenes Modul heißt nicht so. Ich habe eben durch Recherche auch erfahren, dass calendar eine Standardbibliothek ist. Aber ich hatte nichts im System geändert. Ich installiere nur lediglich Bibliotheken über pip in meiner cmd-Konsole.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Na dann schau dir doch mal an was

Code: Alles auswählen

import calendar
print calendar.__file__
ausgibt. Das kann offensichtlich nicht das der Standardbibliothek sein.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

@cofi: Erschieß mich 8) Das Problem war, dass ich in meinem example-Ordner (dort sammle ich all meine Test-Beispiele) ein Modul mit dem Namen hatte. Ich hatte total vergessen nachzusehen, da sich schon einige Test-Module angesammelt hat. Wie peinlich.
Antworten