친구가 보안쪽을 공부하면서 자연스레 해킹하는 방법도 터득하게 되었는데,

 

이번에 https://rgbplace.com 사이트의 취약점을 몇 가지 알려주었다.

 

 

왠만한 것들은 코드이그나이터에서 제공하는 보안 함수와 시큐어 코딩을 적용했지만

 

내가 놓친 부분이 있었다.

 

rgbplace.com 메인 화면

 

지금은 보완해놨는데, ' 기호가 들어가면 에러가 나면서 reponse 쪽에 SQL 을 노출시킨다.

 

운영모드(코드이그나이터의 Production 설정)라 DB 에러가 보이진 않았겠지만 개발쪽에서는 그대로 노출되고 있었다.

 

해결 방법은 이것.

 

 

https://forums.digitalpoint.com/threads/what-to-use-instead-of-mysql_real_escape_string.2645362

 

What to use instead of mysql_real_escape_string?

I just read on php.net that mysql_real_escape_string is invalid after php 5.5 and to use MySQLi or PDO_MySQL. Hundreds of website tutorials currently...

forums.digitalpoint.com

htmlspecialchars("문자열", ENT_QUOTES | ENT_HTML5) 함수를 그대로 설정해주었더니,

 

html 기호로 변경되면서 검색이 되어져 에러가 나지않게된다.

 

 

 

개발자 입장에서는 정말 사소한 문제라 간단하게 막을 수 있지만, 놓치면 매우 치명적이다.

 

나름 보안에 신경써서 만들었지만 이런식으로 빈틈이 있을 수 있으니 꼭 확인이 필요하다.

 

(이쯤되면 업로드 부분도 조금 신경쓰인다..)