Ist das richtig?
Nein, nicht entfernt.
Oder Sie sollten wie eine Schnur entkommen?
Nein. Sie sollten auch Sie Escape-Zeichenfolgen.
Oder gar nicht entkommen?
Für Zahlen und Strings (und andere), verwenden, was auch immer die parametrisierte Version der Datenbank-API Sie verwenden ist („Prepared Statements“ oder ähnliches), nicht „escape“ Dinge.
Angenommen, Sie verwenden beispielsweise mysql
npm module. Per the documentation, würde diese Abfrage sein:
connection.query('select from table where id = ?', [req.body.id], function (error, results, fields) {
// ...
});
, dass die „Flucht“ an das Modul die Bereitstellung der API lässt. Wenn Sie ein seriöses verwenden, wurde es gründlich getestet und im Kampf erprobt, im Gegensatz zu Ad-hoc-Lösungen.
Mehr: http://bobby-tables.com/
"Flucht" ist wahrscheinlich nicht der richtige Begriff in diesem Fall. 'parseInt' überprüft, ob die Zeichenfolge mit einer (standardmäßig) Basis 10 beginnt und den Rest der Zeichenfolge zurücklässt. Dies ist meiner Meinung nach ein guter Schutz. – leaf
Sie meinen, parseInt ist ein guter Schutz? – oderfla
Ja, ich denke schon, da nur ganze Zahlen der Basis 10 akzeptiert werden, gibt alles andere 'NaN' (Not A Number). – leaf