Sicherheit der Infos bei API abfrage

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
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

Ich frage hier ein paar Dinge ab, z.b die Balance über Get_Balance:
https://www.therock.com/en/pages/api

dazu müssen folgende Parameter bei Abfrage übergeben werden:
Params: username, password, api_key, type_of_currency - the currency you want to get the balance of

Das habe ich jetzt mithilfe eines fertigen Skripts welches Python2 war, in Python3 so umgesetzt:

Code: Alles auswählen

    def GetBalance(self, currency):
        try:
            url = 'https://www.therock.com/api/get_balance'
            values = {
            'username' : self.username,
            'password' : self.password,
            'api_key'  : self.key,
            'type_of_currency' : currency
            }        
            Balance = requests.post('https://www.therock.com/api/get_balance', data=values).json()
            return Balance
        except:
            return None
Nun ist meine Frage:
Wie sicher ist diese Abfrage? Hiebei sende ich ja direkt den Usernamen, das Passwort und den API Key mit. Ist das genauso sicher/unsicher, wie wenn ich mich ganz normal in meinen Account einlogge? Oder sollte ich da noch weitere Maßnahmen ergreifen, bevor ich in dem genutzten Account größere Mengen Geld nutze?
BlackJack

@Serpens66: Die Verbindung ist SSL-Verschlüsselt. Wenn Dir das als Sicherheit reicht, okay, falls nicht, dann lass die Finger davon. Allerdings dann auch gleich ganz, also auch im Browser nicht nutzen. :-)
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

BlackJack hat geschrieben:@Serpens66: Die Verbindung ist SSL-Verschlüsselt. Wenn Dir das als Sicherheit reicht, okay, falls nicht, dann lass die Finger davon. Allerdings dann auch gleich ganz, also auch im Browser nicht nutzen. :-)
okay danke, das wollte ich wissen :)
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Serpens66: warum wird url als Variable nicht benutzt und gleichzeitig direkt im post-Aufruf angegeben? Ich würde das als Konstante irgendwo an den Anfang stellen. Für die Schreibweise von Namen solltest Du Dich an die Konventionen halten (PEP8). Das nackte except verschluckt jede Fehlermeldung, also auch nicht-json-serialisierbare Parameter, das kann die Fehlersuche nahezu unmöglich machen. Fang also nur Verbindungsrelevante Fehler ab, und versuche irgendwie den Fehler auf weiterzureichen, damit klar wird, ob nur das Passwort falsch ist, oder sich die API geändert hat oder nur die Verbindung nicht aufgebaut werden kann.
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

Sirius3 hat geschrieben:@Serpens66: warum wird url als Variable nicht benutzt und gleichzeitig direkt im post-Aufruf angegeben? Ich würde das als Konstante irgendwo an den Anfang stellen. Für die Schreibweise von Namen solltest Du Dich an die Konventionen halten (PEP8). Das nackte except verschluckt jede Fehlermeldung, also auch nicht-json-serialisierbare Parameter, das kann die Fehlersuche nahezu unmöglich machen. Fang also nur Verbindungsrelevante Fehler ab, und versuche irgendwie den Fehler auf weiterzureichen, damit klar wird, ob nur das Passwort falsch ist, oder sich die API geändert hat oder nur die Verbindung nicht aufgebaut werden kann.
Das ist wie gesagt jetzt nur das "schlechte" python2 skript was ich mir runtergeladen habe, so in python3 mit requests umgeschrieben, dass es funktioniert. Dass ich die url doppelt schreibe und somit die variable nicht, ist einfach im eifer des gefechts passiert, verbessere ich also noch ;)
Stimmt, "None" hilft nicht viel bei der fehlersuche, werde da dann die Fehlermedlung der API ausgeben lassen.

Schreibkonventionen muss ich mal schauen... Habe mir da jetzt eine seite ergooglet, wo ein bisschen was steht...versuche mir mal die häufigsten verwendeten Dinge zu merken... wobei ich mich nicht mit anfreunden kann, dass definitionen und variablen dieselbe schreibweise haben sollen. Da gefällt mir die "GetBalance" schreibweise in diesem Skript hier deutlich besser.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Serpens66 hat geschrieben:Schreibkonventionen muss ich mal schauen... Habe mir da jetzt eine seite ergooglet, wo ein bisschen was steht...versuche mir mal die häufigsten verwendeten Dinge zu merken...
PEP 8 in der Dokumentation.
Serpens66 hat geschrieben:wobei ich mich nicht mit anfreunden kann, dass definitionen und variablen dieselbe schreibweise haben sollen. Da gefällt mir die "GetBalance" schreibweise in diesem Skript hier deutlich besser.
Das ist ja schön, dass deine Schreibweise dir besser gefällt, aber im Python-Umfeld ist diese nicht üblich ;-) Wenn du mit einer Sprache arbeitest, dann solltest du dich an deren Gepflogenheiten orientieren. Das verbessert die Verständlichkeit deutlich.
Das Leben ist wie ein Tennisball.
Antworten