SQL Inject공격이란?
어떻게 막아햐 하나?
일단 의미 그대로 해석해본다면 SQL문을 주입해서 공격하는 방식으로 DB에 직접적으로 타격을 주는 공격이다
많은 예시들을 살펴봤고 보통 로그인하는 방식을 예로 들고 있다
예시들이 궁금하다면
너무 설명을 잘해주셔서, 이미 잘나와있는 내용에 대해서는 또 적을 필요가 있을까싶다
이 3가지의 방법이 있다, 따지고 보면 3가지는 아니고
입력값 검증과 2번, 3번중에 하나 선택해서 사용하자 이다
내가 느낀점은 이 공격이 가능한 공격인가? 라는 생각이었고
내가 SQL문을 사용하는 경우는
보통 위 3가지 케이스를 제외하고는 지금까지는 ORM을 주로 사용했기 때문에
이 공격이 가능한 공격인가? 생각했던 것 같다
TypeORM을 사용하면서 나도 모르게 prepared statement를 사용했고,
입력값 검증은 Joi 라이브러리를 이용하여 방어하고 있던 것이다
분명한건 무조건 알고는 있어야 한다는 것이다
왜? 알아야 뭐가 잘못됬는지 아니까