개발/네트워크 보안

SQL Injection 방어

개복치 개발자 2019. 12. 13. 15:04

 

Sql injection을 방어하는 방법중에 하나로 PDO를 사용할 수 있습니다.

 

PDO는 쿼리문을 다이렉트로 보내지 않고, 바인딩해서 보내기 떄문에 SQL injection을 방어할 수 있고, prepare메소드를 이용해서 미리 컴파일된 SQL문에 파라메터를 변경해서 쿼리하는 형식으로 속도가 향상됩니다.

 

사용자 입력단에서 SQL 주석 처리하는 '--'을 제거하면 인젝션을 방어할 수 있나요?

 

- 아닙니다 '#'과 /* 와 같은 것들을 사용할 수도 있습니다.

 

Addslashes(), mysql_real_escape_string() 을 특수문자를 없애면 SQL injection을 다 방어할 수 있나요?

- 아닙니다. 인코딩 방식의 차이를 이용하여 이를 우회하는 것도 가능합니다.

 

DB보안에 UNIX 계열 OS 매커니즘이 충분하지 않은 이유는 무엇입니까?

 

- DB를 편집하는 권한을 가진 로컬 파일 가져와서 DB에 공격해서 OS는 파일이 누구에게 실행되었는지 따지지 않기 때문에 취약함.

 

addslashes()와 htmlentities()의 차이는 무엇입니까?

 

addslashes()는 \와 null 같은 문자를 취급하지만 htmlentities()는 HTML entities 로 보여주지만 DBMS에서는 영향을 미치지 않습니다.

 

 

- 참조

 

http://blog.devez.net/283

'개발 > 네트워크 보안' 카테고리의 다른 글

CSRF  (0) 2019.12.13
XSS  (0) 2019.12.13
SQL injection  (0) 2019.12.13
리눅스 간단 명령어  (0) 2019.12.13
The Security Development Lifecycle  (0) 2019.12.10