반응형

Back 40

웹 보안 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

node.js Sequelize - (include, attributes)

const chatRoom = await ChatRoom.findOne ( { where: {CR_SEQ : cr_seq} , include: [{ model: ChatUser, as:'AIAB_CR_USER', required: false , include: [{ model: User , attributes:['USER_ID','USER_NM','NICK_NM','BRTHDY','AGE','GENDER','CITY_CODE' ,'EMAIL','PROVIDER','PROVIDER_ID','THUMBNAIL','CR_EXIT_AT'] , as:'TB_USER' , required: false }] }] } ); include - 하위 테이블 조인 attributes - 해당 테이블에서 조회 하려는 컬럼 배열

Back/Node 2020.10.30

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

JPA Specification으로 findAll 조회쿼리 where조건 동적 세팅

Mybatis를 사용하다 JPA를 사용해보니, 데이터 select시 조건세팅에 대한 부분이 고민되었다. Mybatis에서는 xml Mapper로 넘어온 파라미터 여부에 따른 조건절을 동적으로 세팅하는 부분이 눈에 보이기 때문에 어떻게 보면 JPA보다 직관적으로 파악 할 수 있다고 생각한다. JPA에서 각 파라미터에 따른 find메서드를 생성할수도 없고, 물론 설계나 어떤 요건에 따른 특화된 기능이라면 그렇게 사용하는것이 좋지만, 공통 조회서비스에서 각 파라미터 별로 메서드를 생성하긴 비효율적이다. 때문에 Mybatis에서 사용했던 내용처럼 Parameter 객체에 모든 파라미터를 담아 그 객체만 넘겨서 동적으로 select하는 방식을 구성해봤다. 1. User Repository import com.ex..

Back/JPA 2020.04.28
반응형