본문 바로가기
정보보안기사&CISSP관련/Application Security

[Day 293] 웹 애플리케이션 개발 시 보안 요구사항

by minimalist_2022 2021. 5. 29.

 

개발 보안 요구사항 추가 설명
사용자에게 전달된 값(Hidden Form Field, Parameter)을 재사용할 경우 신뢰해서는 안된다. 클라이언트에 저장된 정보는 쉽게 조작 가능하므로, 세션 기반으로 서버에서 처리하도록 변경 필요
최종 통제 메커니즘은 반드시 서버에서 수행되어야 한다. 클라이언트에서 입력값을 검증하는 것은 쉽게 우회 가능
1차 검증은 클라이언트 측에서 하고 2차 검증은 서버 측에서 하도록 개발 필요
클라이언트에게 중요 정보를 전달하지 않는다. 중요 정보 하드코딩 금지
쿠키에 중요 정보 전달 시 암호화 필수
중요 정보 전송 시 POST 메소드 및 SSL(HTTPS)를 적용한다. 사용자로부터 중요 정보 받을 때 GET 메소드 사용 시 URL상에 정보가 노출되므로 POST 메소드 사용 필요
중요도에 따라 SSL을 사용한 암호화 통신 적용
중요한 트랜잭션이 일어나는 프로세스에 사용자의 비밀번호를 재확인한다. 사용자 정보 변경 등 중요한 트랙잭션 발생 시 CSRF로 인한 피해를 방지하기 위해 비밀번호 재확인
중요 정보를 보여주는 페이지는 Cache를 사용하지 못하도록 설정한다. 중요 정보를 보여주는 화면에 no-cache 설정을 하지 않으면, 로그아웃해도 뒤로가기하면 해당 내용을 볼 수 있음
no-cache설정은 브라우저나 프락시 서버로 하여금 해당 페이지 요청 시마다 캐시된 페이지를 사용하지 않고 매번 서버로부터 새롭게 전송받게 하는 설정
적절한 방법으로 암호화한다. 자체 개발한 암호 알고리즘 사용은 지양.
암호화키를 사용하지 않으면 암호화가 아닌 단순 인코딩이므로 기밀성 보장 불가
암호화키는 소스코드에 하드코딩 되어서는 안됨
각 언어에서 제공하는 보안 수단을 이해한 후 사용한다.  

* 출처 : 알기사 정보보안기사 실기