반응형

개발자 공부 업무 정보 40

Random 보단 SecureRandom

❓ 서론 Random 을 사용하다가 생긴 버그로 고쳐본 경험.. 그 후 알아본 내용을 정리한다. 본론 에러 메세지 “Random” objects should be reused “Random" 객체는 재 사용 되어야 한다. Random 값이 필요할 때 마다 새 개체를 만드는 것은 비효율적이며 JDK에 따라 임의의 숫자가 생성되지 않을 수 있다. 효율성과 임의성을 높이려면 단일 Random을 만든 다음 저장하고 다시 사용한다. Random() 생성자는 별개의 값마다에 seed를 설정하려고 시도합니다. 그러나 일부 JDK는 현재 시간을 seed로 사용하므로 생성 된 숫자가 전혀 무작위가 아닙니다. public void noRandom() { Random rand = new Random(); // 매번 새 개체..

HTTP 웹 기본 지식 - 2편 URI

Part 2. URI , 웹 브라우저 요청의 흐름 1. URI (Uniform Resource Identifier) 1) URI, URL, URN "URI는 위치(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다" 이 문구로 보았을 때 URI는 URL(Locator)과 URN(Name)을 포함하는 개념으로 볼 수 있다. URN은 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않아 잘 사용하지 않는다." a) URL의 예시 "URL은 리소스가 있는 위치를 지정" b) URN의 예시 "URN은 리소스에 이름을 부여 c) URI의 뜻 Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URL로 식별하는 있는 모든 것 Identifier: 다른 항복과 구분하는데..

HTTP 웹 기본 지식 - 1편 IP, TCP, UDP, PORT, DNS

Part 1. IP, TCP, UDP, PORT, DNS 개념 1. IP (인터넷 프로토콜) 역할 1) 지정한 IP 주소에 데이터를 전달한다. 2) 패킷 단위로 데이터를 전달한다. (패킷에는 출발지 IP, 목적지 IP 등의 정보가 있다) 한계 1) 비연결성 : 패킷을 받을 대상이 없거나 서비스가 불능 상태여도 패킷을 전송한다. 2) 비신뢰성 : 중간에 패킷이 사라질 수도 있고(중간에 서버가 문제가 발생해 전달이 안될 수 있음), 여러 개의 패킷을 보내면 순서대로 도착하지 않을 수 있다(먼저 전송한 패킷이 늦게 도착할 수 있음) 3) 프로그램 구분 : 같은 IP를 사용하는 애플리케이션이 둘 이상이면?.. 구분할 수 없다. 2. TCP (전송 제어 프로토콜, Transmission Control Protoc..

악성 IP 리스트 확인 및 NGINX IP차단 설정

1. 악성 IP 리스트 확인 우선 악성 IP리스트를 구해봅시다 유료버전으로 워드프레스 보안 플러그인인 워드펜스 나 iThemes Security 그리고 Sucuri Security 등이 있으며 이를 무료버전으로 사용할 시 30일 후에나 추가로 리스트를 제공하는 등 실시간으로 처리가 어려운 부분이 있습니다. 그렇다면 실시간 악성 IP LIST는 어디서 구할 수 있을까요? == > 레스큐사이버 https://rescure.me/ 에서 구할 수 있습니다. https://rescure.me/feeds.html에 접속하여 Malicious IP Blacklist 를 선택하면 실시간 악성 IP를 확인 할 수 있습니다.서버에 .txt 형식으로 저장 되어 있는걸 볼 수 있습니다. 2. NGINX 설정에서 악성 IP 차..

CORS_작성중

로컬로 api 서버 포트 8090 / 요청 서버 포트 8080 으로해서 요청을 보냈다 (ex. http://localhost:8080... -> 8090 결과는 403 forbidden .. 권한 문제였다.. 로컬에서 로컬 요청하는데 방화벽관련 문제도 아닐거고.. api 플젝에서 필터나 인터셉터 쪽에 설정된게 있는지 봤으나 별거없었다 문제점 -> CORS로 브라우저에서 요청 권한을 제한시킴 해결방안 - > springframework에서 CrossOrigin 설정하는 방안을 찾았고 @CrossOrigin 에 origins에 로컬 주소를 설정했다.. 우선 테스트에만 사용하고 운영서버로 올릴땐 제거해야하겠다.

[Spring] 기본 초기 셋팅

Spring을 사용하기 전에 간단한 개발 환경의 설정이 필요하다. 1. JDK 버전의 처리 STS를 이용해서 스프링 MVC 프로젝트를 생성하고 나면 JDK의 버전은 1.6버전을 기준으로 생성된다. JDK 1.7 이상의 버전을 사용하고 싶다면 해당 프로젝트의 'Project Facets'를 변경해주어야 한다. 프로젝트를 선택하고 마우스 오른쪽을 이용해서 Properties를 조정할 수 있다. 'Project Facets' 메뉴 조금 위쪽에는 'Java Compiler' 메뉴가 있다. 이를 이용해서 현재 프로젝트의 컴파일 환경 역시 같이 확인해주어야 한다. 2. 스프링 프레임워크의 버전 변경 스프링 프로젝트를 사용하면 가끔은 스프링의 버전을 개별적으로 설정해야되는 경우가 발생할 수 있다. http://pro..

Ireport 사용할 때 파라미터 전달 등 사용법

파라미터는 어플리케이션에서 레포트에 전달하는 값이다. 레포트 생성에 있어서 전달할 매개변수값으로 사용할 수도 있다. SQL쿼리의 조건에 들어갈 파라미터값 혹은 데이터소스만으로는 표시하기 어려운 값을 넘기기도 한다. (이미지파일의 경로나 동적으로 변하는 타이틀등) 다른 레포트 오브젝트들과 같이 파라미터도 클래스타입을 가지고 있고 레포트에서 선언되어 있어야 한다. 필드명처럼 파라메터명도 유니크해야 한다. Use as a prompt는 JasperReport에서 직접 사용되지는 않는 프로퍼티이다. 외부의 어플리케이션에서 사용하는 파라미터를 위한 특별한 플래그값이다. Default Value Expression은 파라미터를 위해 미리 정의해둔 값을 넣을수 있다. 어플리케이션에서 파라미터에 아무런값을 넣지 않았을..

mybatis에서 NumberformatException이 나는 경우

java.lang.NumberFormatException: For input string: “” 에러 해결방법 Error querying database. Cause: java.lang.NumberFormatException: For input string: “y” Cause: java.lang.NumberFormatException: For input string: “y” myBatis 사용시 위와 같은 에러가 발생하는 경우가 있다. 원인을 살펴보면 다음과 같은 형식의 문자열 비교 구문에서 에러가 발생하는 것을 확인할 수 있다. 분명 문자열 비교 구문인데 NumberFormatException이 발생하는 상황이다. *결론적으로 위 현상은 myBatis 문제는 아니고 OGNL(Object Graph Na..

<c:url value 쓰는 이유 / jsessionId

클라이언트가 쿠키생성을 못하게 하면 로그인 유지가 어려워지는데 이때 세션을 유지시키기 위해서 특정값을 부여하는 것 ! 굉장히 좋은 기능을 가졌다. ============================= function fn_view(tblId, row) {var param = {};P_link("" );}라고 보통 쓰는데  우리가 이러한 태그를 쓰는 이유는간혹 혼자 보안 의식을 철저히 가지고 있으신 분들 중에 브라우져쿠키사용금지를 시켜 놓으신분 들이 계신데    이러한 분들 때문에 따로 링크 뒤에 아까 알게 되었던 sessionId를 붙혀서 세션을 유지하도록 한다.  따라서 소스에  라고 써 놓으면 클라이언트에서는 src ="불라불라;jsessionId =와따구리동구리동동" 이라고 된다.   이 링크들은 ..

반응형