[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;
//}
php 미들웨어의 에러 메세지가 출력됩니다 . 상세 메세지를 차단하기위해 php.ini 파일을 수정합니다
/etc/php.ini 파일을 수정합니다
취약점이 존재 하지만 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>
아파치 웹서버의 설정을 변경 후 아파치 서버 재시작 .
다음과 같이 존재하지 않는 페이지를 입력하면 설정한 에러 페이지가 노출됩니다 .
댓글
댓글 쓰기