
[ 크로스 오리진 ]
모든 도메인을 허용하는 것 -> 위험!! 프런트쪽 서버(그림쪽 서버)만 허용해줘야함!!! 나중에 일할 때에는 프런트 서버랑 백엔드 서버가 따로 있다. 포트번호를 프런트- 5000 / 백엔드 - 8000 라고 가정하자 그러면 CORS Policy 때문에 (js로 요청 들어가니까) 전부 블락 당하겠지? 그때, 이걸 사용한다!
[ @CrossOrigin 어노테이션 ]

여러개를 걸 수도 있다. 다시 vs코드로 요청을 보내면?

[ ??? IP로 바꿔서 vs에서 다시 요청해보자 ]


됐다!! @CrossOrigin 어노테이션을 사용하여 CORS 설정 가능!
근데 원래 이런 설정은 입구(필터)에 하는 것!!!
개발자가 별도로 CORS 처리를 위한 필터를 구현하거나 등록하지 않아도, 스프링이 @CrossOrigin 어노테이션이 붙은 곳을 스캔하고 자동으로 필요한 CORS 처리를 해준다!
[ Cross Origin / Same Origin ] → 필터에서 설정하자!

서버 127:8080 - origin 127:8080 브라우저랑 서버는 same. 즉, origin 관계 그럼 서버랑 5500브라우저의 관계는? 포트번호가 다르니 'Cross Origin 이라고 부른다' 서버 사이드 랜더링 하는 프로젝트에서는 뷰가 열리면 브라우저에서 열리는 것 주소를 보면 전부 SameOrigin이 찍혀 있었다. (localhost:8080) SameOrigin 관계에서 AJAX 요청을 하는건 같은 오리진이라 모두 허용해 준 것!! 그러나 크로스 요청은 서버가 죄다 거부함 웹에서의 대부분 모든 공격은 전부 자바 스크립트 공격이기 때문에 자바 스크립트 공격을 방어하기 위해 전부 블락!! 전부 막아버림! 이걸 해결할 수 있도록 설정해줄 수 있는건 서버다. 서버가 앞에다가 필터를 걸어놓는다. (크로스 오리진 설정도 아파치 톰캣 앞에 걸어놓는데, 프로토콜을 다 지켜서 만들어져 있다.) 이 필터에다가 크로스 오리진 중에 아아피 5500만 허용하는 설정을 걸어놓는다 그럼 5500만 들어오고 나머지는 다시 블락! 다 허용하면 절대 xxx 이걸 컨트롤러에 하게되면 설정할게 너무 많고, 컨트롤러 메서드에 하게되면 너무너무 많아진다 때문에 필터에 해야함
+) 포스트 맨으로 요청이 될까?

된다! 자바 스크립트 요청이 아니니까 된다. 자바 스크립트가 도는 요청만 안 되는 것! 휴대폰 됨? app요청 됨?? -> 앱은 자바로 만든다. 된다. 크로스 설정 필요해? -> 필요 없다. 근데 리액트는 자바스크립트로 만들어져서 다 거부 당함. 리액트 네이티브도 js로 만들어서 죄다 거부당함 플러터는 크로스 플랫폼 앱인데, cors설정이 필요할까? 플러터는 컴파일해서 실행하면 안드로이드에서 자바 코드로 바뀐다. -> 그래서 요청 됨 그러나 플러터로 웹을 만들 경우엔 자바 스크립트로 컴파일된다 -> 악 자바스크립트!!! 더러워!! 하고 요청 거부함 크로스 요청이라고 다 안되는게 아니라 자바스크립트로 요청할 때에만!!!!!! 거부함!!!!!!!!!!!!!!!
XSS -> 자바 스크립트로 공격하는 것 (궁금하니? 궁금하면 찾아서 공부해)
[ 크로스 사이트 스크립팅 XSS ]
Share article