[SQL INJECTION] 웹 서버 보안 설정

웹 서버 보안 설정 


웹 서버의 보안 설정은 웹서버와 미들웨어에서 제공하는 환경 설정의 기능을 이용하는 방법입니다 . 
근본적인 해결은 불가능 하지만 지연 효과 등 보조적인 수단으로 활용이 가능합니다 . 











Apache서버의 Custom Error 활성화

웹 서버에서 활용 가능한 보안 설정으로는 상세 에러 메세지가 노출 되지 않도록 하는 "Custom Error Response" 가 있습니다 . 
SQL 인젝션의 상세 에러 메세지는 취약점 인지와 분석에 매우 유용한 정보로 활용합니다 . 
취약점 탐지와 데이터 획득에 활용이 불가하도록 웹 서버의 설정을 변경 하여 에러 메세지가 노출되지 않도록 차단합니다 . 

앞서 실습을 진행한 empinfo_id.php 예제를 수정합니다. 

empinfo_id.php (17행 주석처리)
//if (!$result) {
//    echo "DB Error, could not query the database\n";
//    echo 'MySQL Error: ' . mysql_error();
//    exit;
//}





















주소창에 가상머신주소/empinfo_id.php?empid=1' 입력

php 미들웨어의 에러 메세지가 출력됩니다 . 상세 메세지를 차단하기위해  php.ini 파일을 수정합니다







/etc/php.ini 파일을 수정합니다
  • 678번 줄의 "display_Errors = off로 수정한다 





  • 웹 서비스 재시작












취약점이 존재 하지만 DB의 에러 메세지는 노출되지 않았습니다 . 
일반적으로 php.ini의 개발서버는 on 운영서버는 off로 설정되어야 합니다 









여기서는 실습을 위해 다시 on 으로 변경합니다. 

404 에러 커스텀 페이지

에러페이지 소스코드
<html>
<body>
<br><br><br>
<H1>오류 Error</H1>
서비스 이용에 불편을 드려 죄송합니다.<br>
입력하신 주소가 정확한지 확인 후 다시 시도해 주시기 바랍니다.<br>
<br>
We have encountered a system error while processing your request.<br>
We apologize for the inconvienience. Please check URL and try again.
</body>
</html>



아파치 웹서버의 설정을 변경 후 아파치 서버 재시작 . 
















다음과 같이 존재하지 않는 페이지를 입력하면 설정한 에러 페이지가 노출됩니다 .



댓글