Zapobieganie iniekcji SQL w Node.js

Czy możliwe jest zapobieganie zastrzykom SQL w Node.js (najlepiej z modułem) w taki sam sposób, w jaki PHP przygotowało wyciągi, które chroniły przed nimi.

Jeśli tak to jak? Jeśli nie,jakie są przykłady to może ominąć kod, który podałem (patrz poniżej).

Jakiś kontekst:

Tworzę aplikację internetową ze stosem zaplecza składającym się z Node.js + MySql przy użyciunode-mysql moduł. Z perspektywy użyteczności moduł jest świetny, ale nie zaimplementował jeszcze czegoś podobnego do PHPPrzygotowane oświadczenia (choć wiem, że jest nado zrobienia).

Z mojego zrozumienia, między innymi, wdrożenie przygotowanych oświadczeń przez PHPpomógł bardzo w zapobieganiu zastrzykom SQL. Martwię się jednak, że moja aplikacja node.js może być otwarta na podobne ataki,nawet z domyślnym łańcuchem uciekającym (jak w poniższym fragmencie kodu).

node-mysql wydaje się być najpopularniejszym łącznikiem mysql dla node.js, więc zastanawiałem się, co inni ludzie mogą robić (jeśli w ogóle), aby wyjaśnić ten problem - lub czy jest to nawet problem z node.js na początek (nie wiesz, jak by to nie było, ponieważ dotyczy to danych wprowadzanych przez użytkownika / klienta).

Czy powinienem przejść nanative-mysql-native na razie, ponieważ dostarcza przygotowanych wypowiedzi? Jestem niezdecydowany, aby to zrobić, ponieważ nie wydaje się być tak aktywny jak node-mysql (choć może to oznaczać, że jest kompletny).

Oto fragment kodu rejestracji użytkownika, który używaśrodek odkażający moduł wraz z przygotowaną instrukcją składni podobną do węzła mysql (która, jak wspomniałem powyżej, ucieka od znaków), aby zapobiec, odpowiednio, skryptom krzyżowym i zastrzykom sql:

// Prevent xss
var clean_user = sanitizer.sanitize(username);

// assume password is hashed already
var post = {Username: clean_user, Password: hash};

// This just uses connection.escape() underneath
var query = connection.query('INSERT INTO users SET ?', post,
   function(err, results)
   {
       // Can a Sql injection happen here?
   });

questionAnswers(5)

yourAnswerToTheQuestion