nodejs mysql사용시, SQL Injection 방어하기

2022. 1. 19. 10:22IT/nodejs

반응형

DB를 사용하는 경우, 항상 유의해야 하는 점.

SQL Injection...

 

SQL Injection이란 DB쿼리를 사용시에, query string 값을 넣는 경우가 99.9999%인데 (심지어 유저 ID), 이때 파라미터 값에 특수 문자와 문법들을 이용해서 쿼리를 무력화하고 권한을 획득하는 것을 의미한다.

https://namu.wiki/w/SQL%20injection

 

nodejs로 mysql npm을 사용하고 있는데, 어떻게 방어하는지 궁금해서 검색해보니, 아래와 같이 하면 된단다.

escape

escape는 문자열을 인코딩하는 걸 말한다. 

const getUser = function (chat_id) {
	return connection.query(`SELECT * FROM USERS WHERE id=${connection.escape(id)}`)
};

 

좀 더 자세한 사항은 더 좋은 사이트가 있어서 링크를 공유해본다.

https://techbless.github.io/2020/01/19/Node-js%EC%97%90%EC%84%9C-SQL-%EC%9D%B8%EC%A0%9D%EC%85%98-%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-mysql/

반응형

'IT > nodejs' 카테고리의 다른 글

nodejs mysql사용시, SQL Injection 방어하기  (0) 2022.01.19
Telegram Bot inline keyboard 구현  (0) 2022.01.07