2016-10-31 9 views
0

현재 API 백엔드에서 작업 중입니다.입력 유효성 검사와 DB 쿼리를 분리해야합니까?

(예, NodeJS)

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 라이브러리를 작성하는 방법을 묻는다면. –