728x90

유용한 사이트 1. 파비콘 생성기

https://www.favicon-generator.org/

아래 사진을 클릭하세요

유용한 사이트 2. 자바 정규식 검사

https://regexper.com/

아래 사진을 클릭하세요

유용한 사이트 3. JavaScript, HTML 자동정렬

http://jsbeautifier.org/

아래 사진을 클릭하세요


728x90

유용한 사이트 1. 내 비밀번호는 얼마나 안전한가요?

 How secure is my password?

비밀번호가 안전한지 점검해 보세요. 

아래 이미지를 클릭하세요

힌트!! 찾는데 63만년 보다는 오래걸려야 겠죠?(make over 638 THOUSAND YEARS !!!) 

암호화는 푸는데 시간이 오래걸리는 수학식입니다.^^

"ENTER PASSWORD"에 비밀번호를 입력해보세요!!

주소 : https://howsecureismypassword.net/


728x90

1. 사소한 일에 너무 집착하지 않았는가?

2. 통상적인 인습이나 관례를 존중하지 않았는가?


728x90

[a-zA-Z]            알파벳 1글자

[a-zA-Z][a-zA-Z] 알파벳 2글자

[a-zA-Z].           첫자만 알파벳 모든문자 한글자. 

[a-zA-Z].+         첫자만 알파벳 두글자 이상의 모든물자. 

[a-zA-Z].+[0-9]   첫자 알파벳 마지막글자 숫자 세자 이상. 




^

 문자열의 시작

 문자열의 종료

 .

 임의의 한 문자 (문자의 종류 가리지 않음)

 단, \ 는 넣을 수 없음

 *

 앞 문자가 없을 수도 무한정 많을 수도 있음

 앞 문자가 하나 이상

 앞 문자가 없거나 하나있음

 []

 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를      나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다.

 {}

 횟수 또는 범위를 나타낸다.

 ()

 소괄호 안의 문자를 하나의 문자로 인식 

 |

 패턴 안에서 or 연산을 수행할 때 사용

 \s

 공백 문자

 \S

 공백 문자가 아닌 나머지 문자

 \w

 알파벳이나 숫자

\W 

 알파벳이나 숫자를 제외한 문자

\d 

 숫자 [0-9]와 동일

\D 

 숫자를 제외한 모든 문자

 정규표현식 역슬래시(\)는 확장 문자

 역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미

(?i) 

 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음

'For Real' 카테고리의 다른 글

[스파르타코딩클럽 할인쿠폰] 5만원 링크  (0) 2021.04.21
2018.06.30 싸이그램즈 2018  (0) 2018.06.30
728x90


KMU-KISIA 정보보안 아카데미 재직자교육 -웹해킹방어를 위한 자바시큐어코딩 실무 교육을 듣고..

 1. 보안 약점과 보안 취약점의 차이는?  << 클릭


CH2 . 개발 보안 방법론

#시큐어 코딩

- "소스코드"의 잠재적 보안 취약점을 제거하고 보안관련 점검 문제점 제거

- 방법 : 코드검사 혹은 보안 솔루션도입.

# 소프트웨어 개발 보안

- "소프트웨어 개발 과정"에서 잠재적 보안 취약점을 제거하고 보안관련 점검 문제점 제거 하는 일련의 보안 활동

- 요구사항 분석

C(기밀성 1~3점) x I (무결성 1~3점) x A(가용성 1~3)  =1~27점 으로 등급별 관리

- 설계 

로그인 : 중요정보

관리자 페이지 : 중요정보, 별도 포트, 외부망

급여 : 경우에 따라. 공무원의 경우 이미 공개정보이기에 중요하지 않음  

- 구현

- 테스트


시큐어코딩 설명 쉬운 사이트 : http://blog.naver.com/acornzone/220689199858


#위협모델링

4단계 위협에 대한 우선순위결정

1. 예상피해

2. 재연확률 : 공격이 성공할 확률?

3. 공격 용이도 : 공격을 위해 얼마나 많은 노력이 필요한가

4. 영향을 받는 사용자

5. 발견 용이성 : 얼마나 쉽게 취약성 발견되는가?


CH3 . 웹 어플리케이션 보안을 위한 기본지식


실습 환경 구축

http://openeg.co.kr/672

접속 및 다운로드

1. SecureCoding.zip

C:\ 폴더에 압축해제

2. WindowXP_client ZIp

3. VMWareWorkstation download 설치

mySQL 이미 설치된 컴퓨터는 3306 port kill(http://blog.naver.com/ooa1769/220557706943)


파로스를 이용한 예제 실행

사용자 컴퓨터 <---> 파로스 <--->웹서버


#HTTP 와 웹 구조 이해

- HTTP(HyperText Transfer Protocol)

서버 컴퓨터와 요청(request)/응답(response) 프로토콜

- HTML head ; body 설명

- HTML body ; 실제 데이터

응답(response)은 바디부분만 준다. 


인코딩

# 인코딩 스키마

- 웹어플리케이션은 인코딩 스키마로 데이터를 안전하게 사용

- URL 인코딩: url에 글자들이 안전하게 서버 컴퓨터에 전달되도록 인코딩

                  , AJAX의 경우 내부에서 자동실행 

ex) < (url 인코딩값 : %3C)

- HTML 인코딩: HTML 문서에서 특별한 기능을 수행하는 문자들을 안전하게 브라우저에 출력

           ex) < (HTML인코딩값 : &lt;)

- BASE64 인코딩: a-z,A-Z,0-9  알파뉴메릭 64개의 문자로 안전하게 인코딩

자세한설명 : http://cocomo.tistory.com/290


크로스 사이트 스크립트

- 유일하게 클라이언트 페이지 공격함 (대부분 서버 공격)

- 사회 공학적 기법 : 사용자가 요청을 보내야 공격이 성립됨, 클라이언트 에게 응답이 되지않으면.. 공격이 성립되지 않는다. 


기법 1 : Reflective XSS  반사

클라이언트 입력 : ID "####"     <=====> 서버 출력 :  "####" 님 환영합니다. 

악성코드 받을수 있는 유알엘을 삽입하여 메일로 보냄. 서버는 (악성코드 포함한)"####" 님 환영합니다. 를 출력


기법2 : Stored XSS

id=1에 DB에 저장. DB저장된 정보가 조회 되어 실행


기법3: DOM XSS 개요

클라이언트 입력 파라메터 1: "####"     <=====>  다른 시첨에서 주어진 값을 실행할 때 문제 발생


해결방안

기법1 ==> 입력값.출력값 필터링으로 해결 (ex, SpringMVC 이용하는 경우)

==> 입력시 Fillter 에 XSS 설치시 기법1은 방어가능하나. 기법 2는 방어 한것이 아님.

==> 임의로 만든 로그인페이지 연결해서 아이디 패스워드를 얻을 수 있음


출력값

어디? Controller  (실습 fillter)

        View (실습  encoder)

어떻게? htmlEncoding

           XSSFilter를 적용  

어떤 방법? 화이트리스트 필터

            블랙리스트 필터

입력값 어디? Filter 컴포넌트, (실습 XSS Filter)

인터셉터 컴포넌트(용도가 다름... 어떤값이 들어왔을 때 계속할지 차단할지)

어떻게?  htmlEncoding

           XSSFilter를 적용  

 - 어떤 ? 화이트리스트 필

            블랙리스트 필터


칼리리눅스 ...악성코드 배포.... 공격서버 커넥션




el문 ${}


<p>${board.content}</p>

html 인코딩... p테크의 텍스트로 변경

lucy xss 는 화이트 xss

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet


크로스 사이트 필터를 또 뚫는...   <IMG SRC="javascript:alert('XSS');"> <LINK REL="stylesheet" HREF="javascript:alert('XSS');">  ....브라우저마다 다르다. 


필터는 실제로 체이닝 기능밖에 없음

Spring MVC ; HttpServletRequestWraper   ;실제데이터를 싸는 기능  head, body 값을 확인


http://openeg.co.kr/383

filter 웹 컨테이너


디스페쳐 서블릿 스프링 컨테이너

web.xml 설명

->인코딩필터 -> 멀티파트 필터 -> 크로스 사이트 필터 

멀티파트 필터 : 멀티파트 리졸빙... 


a=10&b=10,20,30 -> wraper

http://openeg.co.kr/383




# 정규식

- 자바의 정규표현식은 특정한 규칙을 가지는 문자를 표현하는데 사용하는 형식 언어이다.

- java의 기본 API

ex) 이메일 정규식 [A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}



# 캡슐화의 위배

- OOP의 특징 !! : 상속 다형성 캡슐화

- 캡슐화 : data가 외부에서 직접적으로 접근못함... public, private 의도가 깨질때

- 싱글톤일 때 배열, 콜렉션의 데이터 관리에 유의할 것!!

   :heap 에서 저장된 전역으로 사용되는 변수 값이 바뀌어 다른 쓰레드 영향받음

public class RoleTest {

public static void main(String[] args) {

Role r = Role.getInstance();

System.out.println(r.adminLists());

String[] a = r.getAdminRoles();

a[0]="홍길동";

System.out.println(r.adminLists());

}

}

해결방안 : get, set 메서드 구현시 복사하여 사용

public class Role {

    private String[] adminRoles = {"admin","root","manager"};

    private static Role role;

    private Role() {}

    

    public static Role getInstance() {

     if ( role == null ) {

     role=new Role();

     }

     return role;

    }    

public String[] getAdminRoles() {

String[] n = new String[adminRoles.length];

System.arraycopy(adminRoles,0,n,0,adminRoles.length);

return n;

}

생략


# 파인드시큐리티 버그 간단한 보안 툴 이용

- 일반 보안툴 :800개 ~1200개

- 파인드 시큐리티 버그 : 30개

정탐 , 오탐

- 보안 취약점과 보안약점은 검사하는 방법이 다름 , 최근 인공지능을 로깅으로 이용하려는 추세

- 오탐이 많아도 미탐이 적으면 사용. 미탐률이 적은게 가장중요.

findsecuritybugs

http://find-sec-bugs.github.io/download.htm

이클립스 플러그인에 저장


728x90



저는 지금 나나스킨을 이용하고 있습니다. 






http://nanaskinver5.tistory.com/23?category=711832

728x90

2017년 제작한 허리통증을 위한 임산부 요가 영상입니다. 



728x90

+ Recent posts