# Login System mit NodeJS



## BloodSteam (27. November 2018)

Hallo,
Ich versuche einen neuen User in die Datenbank hinzuzufügen mit NodeJS, jedoch funktioniert es für mich nicht und werden auch keine Fehler angezeigt.
Was mach Ich falsch?


```
try{        
   conn = await conn_sql.getConnection();
   await conn.query(`INSERNT INTO user (username,password) VALUES ('${data.username}','${data.password}')`);
}catch(err){
   throw err;
}finally{
   if(conn) return conn.end();
}
```


----------



## DataDino (27. November 2018)

Was für ein SQL-Modul verwendest du denn da genau? Bin aus Node schon länger raus und da gibt es ettliche xD


----------



## BloodSteam (27. November 2018)

Es ist ein mariaDB Modul für mariaDB.


----------



## BloodSteam (1. Dezember 2018)

Hab jetzt ein anderes Problem, wie soll Ich den Input "escapen"? (Keine Ahnung wie man es in Deutsch nennt)


```
username: querystr.escape(req.body.username),
email: querystr.escape(req.body.email),
password: querystr.escape(req.body.password)
```


----------



## DataDino (1. Dezember 2018)

Das Problem ist, das ich mit SQL-Wrappern auf Node keinerlei Erfahrung habe und zum escapen nichts sagen kann. Ich habe mit Node ausschließlich mit CouchDB oder MongoDB herumhantiert. Da läuft der Spaß etwas anders.

Aber ich persönlich bevorzuge bei SQL-Datenbanken in der Regel prepared Statements, wodurch ein zusätzliches escapen entfällt. Dort wird der Query mit Platzhaltern versehen und vorkompiliert. Dadurch haben Störsequenzen, die eine Injection ermöglichen keinerlei Auswirkung mehr, da das SQL nicht mehr interpretiert wird. Wichtig dabei ist nur, das der Wrapper das auch unterstützt.

Wenn du das erste Problem noch nicht in den Griff bekommen hast: Kann es sein das du in der Tabelle eine "NOT_NULL" Spalte hast? Und besitzt der Wrapper Methoden, die dir Fehlermeldungen vom Server zurückwirft?


----------



## grasshopper_1975 (1. Dezember 2018)

Ich weiss nicht ob es dir hilft und kenne ja die Fehlermeldungen nicht genau, aber hier ist ein Beispiel, wie man Zeichen bei einer Maria-DB escapen kann:

String Literals - MariaDB Knowledge Base

Weiter unten ist auch ne Liste, wie man was am besten esaceped.


----------



## Shutterfly (7. Januar 2019)

BloodSteam schrieb:


> Hab jetzt ein anderes Problem, wie soll Ich den Input "escapen"?



Prepared Statements sind das Zauberwort.


----------

