2016-10-12 11 views
2

Expressjsプロジェクトでは、https://www.npmjs.com/package/mssqlを使用してMicrosoft SQL Serverに接続し、ストアドプロシージャを実行しようとしています。によるとmssqlhttps://www.npmjs.com/package/mssql#sql-injection)のドキュメントは、私はそれが起こっていないと思うものすべてのSQL注入を処理します。mssqlノードモジュールでSQLインジェクションを処理する方法

このノードモジュールでSQLインジェクションを処理する方法を教えてもらえますか?

var sql = require('mssql'); 
 
var dbConfig = {}; 
 
var Connection = new sql.Connection(dbConfig); 
 
Connection.connect().then(function(_connection){ 
 
    var request = new sql.Request(_connection); 
 
    request.verbose = true; 
 
    request.input('username', 'patriksimek'); 
 
    request.input('password', 'delete from dbo.Users where userId =1'); 
 
    request.input('attempts', 2); 
 
    request.execute('my_stored_procedure'); 
 
})

おかげで、事前

+0

SQLコマンドを生成して実行するコードを掲載します。文字列の連結またはパラメータを使用していますか? – Dai

+0

準備済みの文を使用します。 'var ps = new sql.PreparedStatement(connection) ' –

+0

@Dai ,,私は上記のコードを更新しました。 –

答えて

0

には、SQLを注入することができないストアドプロシージャを使用しています。

何もする必要はありません。

SQLインジェクションは、いくつかのSQL文をサーバに渡してハックする手法です。私はusername = 'xxx; DELETE FROM user;'を渡す場合、ユーザーテーブルのすべてのレコードがSQLインジェクションから保護するために

を消えてしまいます

'SELECT * FROM user WHERE username = ' + username 

コードの

例えば、

  1. 使用クエリパラメータ化
  2. ストアドプロシージャを使用する(現在使用しているもの)
+0

ありがとう.. –

関連する問題