hyejin56 / nws

0 stars 0 forks source link

HCCC Light ESM 구축 사업 웹 보안성심의 지원 요청의 건 #1

Open hyejin56 opened 3 years ago

hyejin56 commented 3 years ago

2021-05-26 HCCC Light ESM 구축 사업 웹 보안성심의 지원 요청의 건

hyejin56 commented 3 years ago

1.2.1 입력 값 검증 1.2.1.1 Cross site Scripting

방법 2. strip_tags를 사용하여 태그 제거

방법 3. xss_filter 필터링 함수 만들어 사용


1.2.2 부적절한 환경 설정 1.2.2.1 에러처리 미흡

// 아래와 같이 수정 image // 에러페이지 추가 image

// 조지결과 image image


1.2.3 중요정보 노출 1.2.3.1 시스템 중요정보 노출

[조치방법]

  1. CentOs 일 경우

    • httpd.conf 또는 httpd-default.conf 아래 설정 추가( /etc/httpd/conf/httpd.conf) ServerTokens Prod ServerSignature Off
  2. ubuntu 일 경우

    • security.conf 아래 설정 변경 (/etc/apache2/conf-available/security.conf) //기본설정 image //아래 이미지와 같이 수정 image

//조치 결과 image image


1.2.3.2 개인 및 금융정보 노출

[조치방법] // 회원가입시에 입력받은 아이디를 DB에 저장할 경우 아래와 같이 사용. <? // 회원가입 화면에서 입력받은 비밀번호를 가져옵니다 $user_passwd = $_REQUEST['txtPassword1']; $user_id = $_REQUEST['txtPassword1'];

// 비밀번호를 암호화 합니다 $encrypted_passwd = password_hash($user_passwd, PASSWORD_DEFAULT);

// 비밀번호를 DB 에 저장합니다 $query = " INSERT INTO member ( id, passwd ) VALUES ( '$user_id', '$encrypted_passwd ') "; ?> // 로그인 화면에서 입력받은 비밀번호를 DB에 저장된 비밀번호와 비교할때 아래와 같이 사용 // $user_passwd 는 로그인시 입력받은 비밀번호 // $db_passwd 는 DB에서 읽어온 암호화된 비밀번호 if ( password_verify($user_passwd, $db_passwd)) {
// 로그인 성공 } else { // 로그인 실패 }

참고로, 아래와 같이 암호화된 비번을 출력해보면, 실행할 때마다 다른 값이 나옵니다.

같은 비밀번호라고 해도 DB에 저장되는 값은 매번 바뀐다는 겁니다. echo password_hash($user_passwd, PASSWORD_DEFAULT);
하지만 아래와 같이 비교할 때는, DB에 어떤값이 저장되어 있더라도 비교가 가능합니다. 즉, DB정보가 노출되더라도 비밀번호값을 알아내기가 쉽지 않다는 겁니다 if ( password_verify($user_passwd, $db_passwd))

hyejin56 commented 3 years ago

1.2.4. 암호화 적용 1.2.4.1 암호 적정성