Browser Security

katsukichi·2021년 3월 18일
0

CodeStates_IM

목록 보기
29/48

브라우저는 위협받고있다.

근본적인이유는 ?

(여러가지 이유가 있겠지만)
Javascript를 구동하기때문에

그럼 왜? 자바스크립트가 문젠데 ?

자바스크립트로 할수있는것들이 많아서 그렇다!

  1. ajax call
  2. 다이나믹 DOM
  3. 인증을 브라우저에 저장 (session ?..)
  4. 인증을 불러온다. Authentication

어떤 공격이 일어날까 ?

대표적인 공격

XSS

클라이언트가 서버를 신뢰하기 때문에 발생하는 이슈이다.

서버에 메시지 요청 -> 메시지 응답 -> 응답받은 메시지 DOM 반양


{
  name:"hacker101",
  text:"<script>alert('브라우저가 해킹 당했습니다.')</script>"
}

innerHTML을 사용하면 문제가 된다.

textContent를 쓰면 문제가 안된다.

당연히 다른 치명적인 코드가 들어간다면 문제가 커질수있다.

CSRF

반대로 서버가 클라이언트를 신뢰해서 발생하는 이슈이다.

서버는 인증정보를 가지고 오면 믿는다.

이사람을 신뢰하니까 이사람이 나에게 해를 끼치는행동에 대해서 정해놓지않는다.


사용자는 인증정보를 가진체로 해커의 링크를 누르면

해커는 인증정보를 가로채서 서버에 요청을 보내버린다.

실제 유저의 요청이 아님에도 불구하고, 해커는 정보를 얻을수있다.

인증을 배우면 이해가 쉽다.


xss와 csrf는 어떻게 막을수있을까?

브라우저에 기본적인 xss공격은 막혀있다.


Browser secury model

CORS?

크로스 오리진 리소스 쉐어링

Cross-Origin Resource Sharing

교차의 오리진의 자원을 공유하는것.

SOP = same origin policy

같은 도메인으로부터온것(origin) 정책이 기본이다.

다만 세월이지나면서 개발자들은 자기 페이지에 다른 서버의 데이터를 보여주고싶었다.

그래서 하나의 예외를 만들어둔것이다.

그게 바로
CORS이다.

simple request라는 것이있고.

여러 조건을 동시충족해야만 사용가능하다.

preflightedd requset가 있다.

pre 먼저 flight 뜬다(공중에뜬다 비행기보내는거거처럼)

먼저 띄워본다. 요청을

CSS XSS

cross site scripting 의 의미인데

css가 우리가쓰는 css와 겹쳐서 xss로 했다는 일화가있다.
진짠지 아닌진모르겟고 ..

누군가 불순한사람(해커)가 서버에 심어둔다

피해자가 서버에서 받아서 JS를 실행하게된다.

피해를받게된다.

profile
front-back / end developer / Let's be an adaptable person

0개의 댓글