Languages 69

[Dependency]lucy filter xss 공격기법막기

https://owasp.org/?gclid=Cj0KCQjw1PSDBhDbARIsAPeTqreK3Y1pkailZh8foGitGTrW_aC4KWG1aAhgea-ZvmZnMK0pNlihqsgaAgoCEALw_wcB개발자가 반드시 막아야할 10가지 공격들 중 7. CROSS-SITE SCRIPTING을 막기 위해 lucy filter를 사용해 보자받는 태그들을 이스케이프 시키면 된다. https://www.kisa.or.kr/public/laws/laws3_View.jsp?cPage=6&mode=view&p_No=259&b_No=259&d_No=88&ST=T&SV=kisa의 소프트웨어 개발 보안 가이드에 잘 설명되어 있다. 66p69p크로스 사이트 스크립팅을 막기 위해 사용 가능한 라이브러리들이 각 개발환경에..

Languages/java 2021.04.20

[JAVA]FileUpload04 <img src="...">data scheme 사용하기

DB에 저장된 프로필을 출력하기google에 data scheme를 검색https://en.wikipedia.org/wiki/Data_URI_schemeimg태그의 src에 byte[]로 이미지 넣기2진데이터를 스트링으로 바꾸기 위해서 base64를 씀data : mime, base64, 2진데이터이렇게 이미지를 Base64로 인코딩 후 데이터 스키마 사용시 단점.인코딩 후 데이터의 크기가 1.3배 정도 늘어난다.latencyTime이 두배(클라이언트, 디비)(직접 DB에 이미지 저장 시) ** 참고보통 클래스의 멤버변수 전부 직렬화 대상에 해당된다. 하지만 보안 상의 문제나 기타 이유로 멤버변수의 일부를 제외하고 싶다면 transient를 통해 지정할 수 있다. Uploaded by Notion2Tis..

Languages/java 2021.04.15

[JAVA] fileUpload03

FileUpload 중에 part라는 API를 고쳐서 사용해 보기.( AdapterPatter 적용) 우선 파일 업로드 시 주의사항file은 2진데이터(byte)타입이다.(get사용불가)2진데이터 → postfile과 text 등 다른 데이터들을 받으려면 enctype을 설정해야한다.(multipart/form-data)다른타입의 데이터를 입력 → multipartpart API를 사용하기 위해 servlet의 버전을 맞춰 주어야 한다.part 사용하기 (버전 맞춰주기) → web.xml( multipart-config)web.xml에 등록되어 있는 Front Servlet에 multipart-config 설정을 집어넣어준다.이렇게 파트를 불러와서 사용가능. 파일 업로드 시 순서어디에다가 저장웹 리소스,..

Languages/java 2021.04.15

[JAVA] (암호화02) 기초적인 원리

암호화 복호화의 기본 원리보면 알 수 있듯이 단방향, 양방향을 함께 사용한다. 암호화 복호화를 쓰는 이유허가받지 않은 유저가 중간에 데이터를 가로채갈 위험이 존재하기 때문.(스코핑) 실제 네이버에 로그인 화면을 살펴보면아이디와 비밀번호를 치고있는 중에 키를 준다. 단방향 - 복호화 불가양방향 - 비대칭, 대칭키 네이버 - 대칭키 사용. 가로채더라도 키를 못써먹게 만들기 위해 키를 줄 때 한번 암호화를 거쳐서 키를 던져준다 클라이언트가 가지고 있는 키로 암호화를 하는게 아니라 네이버에서 준 키로 암호화를 한다. SHA-512방식 ⇒ 64bytedb에 암호화 시켜서 값 넣어보기base64 → encoding 후 데이터 크기가 1.3배 증가 Uploaded by Notion2Tistory v1.1.0

Languages/java 2021.04.13

[JAVA] (암호화01) encode && encrypt

encrypt와 encodeencode데이터 전송 시 사용된다.다양한 데이터를 다양한 형태로오직 데이터를 전달하려는 목적을 가지고 있다. encryptencode와 같이 데이터 전송 시 사용되지만주 목적은 데이터를 보호하기 위해 사용. encoding 의 방법 (여러가지가 존재)Url encodingBase64-대소문자(52 + 숫자) 1.URLEncoding우리가 자주 사용하는 utf-8 타입으로.(한글은 영문과 다르게 바이트 계산법이 다르다.그걸 지원하는게 utf-8)encoding은 언제라도 decoding이 가능하다. encode의 경우 누군가가 데이터를 인지할수 있게끔 하는것이 목적 2. Base64jdk 1.8 이상에서만 지원함.버전이 1.8이다. 이전 버전에서는 다른 라이브러리가 필요하다.현..

Languages/java 2021.04.13

[JAVA](eclipse)junit 사용하기(단위테스트)

eclipse의 maven을 이용한 프로젝트 운용 시 main을 불러와서 사용할 수 없다. 이럴 때 사용하기 위한 프레임워크. mvn repository에서 받아온다. pom.xml의 dependency에 추가 테스트할 파일 클릭 후 ctrl+n(새로만들기)junit을 검색 후 next파일 선택 후 새로만들기로 이동하게 되면 이렇게 자동으로 값들이 들어가 있는걸 볼 수 있다.next 후 테스트를 필요로 하는 메서드 선택암복호화의 sha512를 테스트 해보기 위해서 sha512를 선택.실행하면 이런 화면이 뜸.최초 실행 시 오류가 뜨는데 당황하지 말기. 기본값이 fail로 주어져 있다.그리고 아래에 내용들 입력 이렇게 maven파일에서 main역할을 할 수 있다.따로 테스트 파일에 logger를 설치하지 ..

Languages/java 2021.04.13

[JAVA] 파일업로드02_해보기

앞서 한 것들에게는 검증이 제대로 되어있지 않다.저장하려는 폴더가 없다면 어떻게 할 것인가실제로 이미지만 올라갈까?널체크버전을 타고있다. jsp에서는 이렇게 작성했지만 실제로 넘어가는 값이 image만 있지 않을 가능성이 높다.이러한 문제들을 한번 잡아보자. 1, 폴더가 없을 시mkdirs()로 servletContext로 구한 경로의 모든 폴더들을 생성한다.계층구조의 모든 폴더 생성. 이렇게 실제 폴더가 없을 시 폴더를 만들어 줌으로써 1번 해결. 2. 실제 이미지인가?jsp에서는 image만 올리게끔 했지만 image가 올라오지 않을 수도 있다. 검증을 해주지 않을 시 오류가 뜨면 서버가 꺼질 수 있다. 타입을 가져와서 image/로 시작되는지 체크mimetype을 check하고 오류를 상위로 올려준..

Languages/java 2021.04.12

[JAVA] 파일업로드01_해보기

파일 전송해보기 jsp : 에서 method를 post로 해야한다.file은 문자열이 아닌 2진데이터(byte)형식이기 때문에 requestBody에 데이터들을 담아서 보내주어야 한다.body를 생성하려면 method를 post방식으로 사용해야함. inline에 2진데이터를 첨부할 수 없다. requestInline은 String만 가능하다.그래서 method = post로 바디를 생성해서 보낸다. 아래 사진처럼 input type="file"로만 지정해서보내면 값을 받아올 수 없다. 실제로 출력하면 문자열이 넘어간다.그래서 form태그에 enctype을 지정해 준다.(encodingtype)enctype = "multipart/form-data"enctype을 설정해 주어야 한다. 이렇게 기본 urle..

Languages/java 2021.04.12
728x90
반응형