반응형

Back/Spring Java 28

웹 보안 XSS(Cross Site Scripting) 취약점 대응

XSS(Cross Site Scripting)란? - 웹페이지에 스크립트 코드를 삽입하여 의도하지 않은 명령을 실행시키거나 쿠키, 세션등을 탈 취 할 수 있는 취약점이다. 웹 보안 취약점 대응 방법은 보통 lucy filter와 같은 라이브러리를 적용하며, 추가로 필터로 대응되지 않는 케이스들에 대한 예외처리를 추가로 진행한다. (lucy filter의 request body, 에디터HTML 데이터) Lucy XSS Filter 적용 - 웹어플리케이션으로 들어오는 모든 요청 파라미터에 대해 기본적인 XSS 방어 필터링을 수행한다. - 화이트 리스트 방식의 필터. maven pom.xml com.navercorp.lucy lucy-xss-servlet 2.0.1 web.xml xssEscapeServlet..

Back/Spring Java 2023.06.25

Spring ssl cors설정 403오류

@Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/stats/extration").allowedOrigins("http://무언가의도메인.com") .allowedMethods( HttpMethod.GET.name() ,HttpMethod.POST.name() ,HttpMethod.OPTIONS.name() ); } https://oingdaddy.tistory.com/243 Spring Security CORS 설정하기 예전에 CORS(Cross-Origin Resource Sharing)를 filter를 사용해서 설정하는것에 대해 포스팅을 한적이 있다. Spring Security를 사용하면 ..

Back/Spring Java 2022.04.08

Spring class 동적 로딩 (Singleton)

package com.mk.common.web.security; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.FileOutputStream; public interface FileSecurityInterface { /** * 파일 업로드 암호화 * * @param multi * @return */ MultipartFile encryptUpload(MultipartFile multi); /** * 파일 업로드 암호화 * * @param file * @return */ File encryptUpload(File file); /** * Excel 파일 업로드 암호화 * * @param mul..

Back/Spring Java 2021.04.05

Spring 필드주입(@Autowired)보다 생성자주입을 권장하는 이유

생성자주입을 권장하는 이유를 알아보기 앞서 스프링 프레임워크의 DI(Dependency Injection) 의존성 주입 방법은 크게 세가지로 볼 수 있다. 1. 필드주입 사용법이 매우 간단하다. 필드에 @Autowired 어노테이션을 붙여주면 자동으로 의존성이 주입된다. 편리하기 때문에 가장 많이 접할 수 있는 방법인 것 같다. @Component public class MadExample { @Autowired private HelloService helloService; } 2. 수정자 주입 수정자(Setter)를 이용한 주입 방법도 있다. 다만 잘 사용하진 않은듯. @Component public class MadExample { private HelloService helloService; @Au..

Back/Spring Java 2020.05.25

@Async 비동기 호출

실행중인 프로세스 이외의 비동기 작업이 필요한 대상이 있다면 해당 메서드에 @Async어노테이션을 추가하면 된다. @Async public void runAsync() { // Run run do run run Aikatsu } 해당 방식은 전통적인 방식으로 동작되는 코드 이다. 매우 간단하다. 하지만 다른 스레드로 실행 시키려고자 한다면 @EnableAsync 설정을 따로 해야한다. @Configuration @EnableAsync public class AsyncConfiguration { private final int ASYNC_THREAD_POOL_SIZE = 5; @Bean(name = "threadPoolTaskExecutor") public Executor threadPoolTaskExec..

Back/Spring Java 2020.04.27

for문(Loop) 성능 개선 - 2

JDK5.0이전에는 대부분 아래와 같이 for문을 작성 했을 것이다. for (int loop = 0; loop < list.size(); loop++) 위의 코드의 문제점은 loop를 돌면서 매번 list.size()메서드를 호출 하기 때문에 적절하지 못하다. 아래와 같이 개선한다면, int listSize = list.size(); for (int loop = 0; loop < listSize; loop++) list.size()메서드를 반복 호출할 필요가 없어지므로 조금 더 향상된 성능을 보여준다. 또, JDK5.0부터는 향상된for문, for-each를 사용 할 수 있다. ArrayList list = new ArrayList(); for (String str : list) *성능테스트 int c..

Back/Spring Java 2020.04.16
반응형