다음 SQL 쿼리문에 대한 설명으로 옳지 않은 것은?SELECT * F… | [국회직 9급 정보보호론] 25년 1회차 기출문제 상세 페이지
1[국회직 9급 정보보호론] 25년 1회차
다음 SQL 쿼리문에 대한 설명으로 옳지 않은 것은?SELECT * FROM user WHERE name = '' or ''='';
1
SQL 인젝션 공격에 취약한 문장이다.
2
WHERE절에서 user의 모든 레코드를 반환받을 가능성이 있다.
3
위 SQL 쿼리문의 취약점 해결 방법으로 prepared statements를 사용하는 것이 좋다.
4
입력값 검증을 위하여 블랙리스트 방식으로 유효한 값만 허용하는 것이 좋다.
5
JPA, Hibernate 등 ORM으로 데이터를 추상화하는 것이 좋다.
해설
옳지 않은 설명은 블랙리스트 방식으로 유효한 값만 허용한다는 내용이다.
유효한 값만 허용하는 방식은 화이트리스트이고, 블랙리스트는 위험한 값을 지정해 막는 방식이다. 용어가 뒤바뀌었으며 입력값 검증에는 화이트리스트가 권장된다.
- SQL 인젝션에 취약한 문장: 입력이 구문으로 해석된 전형적인 형태로 옳은 설명이다.
- 모든 레코드 반환 가능성: 항상 참인 조건이 OR로 붙어 옳은 설명이다.
- prepared statements 사용: 구문과 값을 분리하므로 옳은 대응이다.
- ORM을 통한 추상화: 파라미터 바인딩으로 쿼리를 다루므로 옳은 대응이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[국회직 9급 정보보호론] 25년 1회차 20문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 다음sql결과에알맞는답을작성하시오. [table] selectcount(col2) fromtable wherecol1in(2,3)orcol2in(3,5); 42022년 정보처리기사실기 2회차
- 다음sql결과에알맞는쿼리을작성하시오. selectname,scorefrom성적(1)by(2)(3) 1.order 2.score 3.desc2022년 정보처리기사실기 1회차
- 다음sql실행결과를숫자만쓰시오. selectcount(*)from급여 whereempno>100andsal>=3000orempno=200; 답:12021년 정보처리기사실기 1회차