2016-10-31 10 views
0

私は現在、APIのバックエンドで作業しています。 (はい、NodeJS)入力検証とDBクエリを分離する必要がありますか?

function addGuys(guys, cb) { 
    var sql = 'INSERT INTO guys ...'; 
    guys.ForEach(function(guy) { 
    // Construct sql according to keys given in `guy` 
    // Validate here? 
    // add col names, values to sql statment, etc 
    } 
    // Execute query 
} 

問題は今、私はこれらのDB機能で入力を検証する必要があります、または私は入力を検証する必要があり

:私は次のように、データベースを照会するために一連の機能を書きましたそれをDB関数に送る前に?後者はきれいだと思われますが、私は初心者ですがまだ分かりません。どんなアドバイスも歓迎されます。ありがとう。

答えて

0

自分で直接SQLを構築すべきではありません。その代わりに、独自の検証とエスケープを行うライブラリを使用する必要があります。よく使われる例はhttp://docs.sequelizejs.com/en/v3/

+0

ありがとう!しかし問題は残る。クエリを構築する方法をもっと把握したい、あるいはフレームワークを使用する前に基本を調べたいと思っているとします。どのように私はDBのクエリと検証を構造化する必要がありますか? –

+0

@ChungLunYuen:いいえ、しないでください。 「フレームワーク」を使用したくない場合は問題ありませんが、手動でSQLを構築する必要はありません。これは作成時のセキュリティ上の脆弱性です。あなたはこれのために何らかのライブラリを使います。非常に異なるDBライブラリを書く方法を尋ねているのであれば。 –

関連する問題