[TIL] 2023/10/23 js/node.js/sql 공격 방어

김민재·2023년 10월 23일
0

TIL

목록 보기
29/172

db.createConnection 객체에
multipleStatements: true,을 사용하게 되면 query문을 이용하여 sql 명령어를 여러개 실행가능하므로 설정을 해두면 안 된다.

  1. 첫번째 방법: 쿼리문을 이용한 공격을 막기 위해서는,
    쿼리문 인자에 ?을 설정하고 밖에서 배열을 통하여 받는 게 안전하다.
' where id = ? ' , [id];
  1. 두번째 방법: 쿼리문을 이용한 공격을 막기 위해서는,
    쿼리문 인자에 db.escape를 설정함으로써 막을 수 있다.
where id = ${db.escape(id)};
  • html인풋 태그에 script를 사용하는 거를 방지하는 방법
    // 라이브러리 npm i sanitize-html
const sanitizeHTML = require("sanitize-html");

// 내가 방지를 하는 곳에 sanitizeHTML(안에 넣으면 된다.)

profile
개발 경험치 쌓는 곳

0개의 댓글

관련 채용 정보