[TIL]200924 Chatterbox Client

Chaegyeom·2020년 10월 3일
0

TIL

목록 보기
42/77
post-thumbnail

deepEquality
두 개의 객체가 주어졌을 떄, 이 두 객체가 deeply equal한지 아닌지를 return하는 함수를 작성하세요.
여기서 "deeply equal"이란, 두 객체가 같고, 각각 객체의 자식 객체의 구조가 같다는 것을 의미합니다.

예시

deepEquals({ a: 1, b: { c: 3 } }, { a: 1, b: { c: 3 } }); // true
deepEquals({ a: 1, b: { c: 5 } }, { a: 1, b: { c: 6 } }); // false

프리코스때 했던 underbar라이브러리를 구현해보는 과정 중 겹겹이 감싸진 배열을 풀어내는 flatten이라는 메소드가 있었는데 이번에는 겹겹이 감싸진 객체를 풀어내는 것이 중요해 보였다 아직 재귀를 잘 사용하진 못하지만 재귀를 통해 감싸진 객체 안을 탐색하여 if문을 통해 조건을 확인 할 수 있었다

지난 밤동안 페어와 내가 각자 고민해온 부분이 다른 부분이어서 오늘 아침에 각자 고민해온 부분을 합치니 chatterbox client가 완성되었다.
조금 일찍 끝나게 되어 각자 미흡했던 부분을 공부하고 코스에 맞춰 레슨을 진행했다

Browser Security에 관해서 배웠는데 XSS와 CSRF가 있다.

Browser Security

브라우저는 자바스크립트를 구동하기 때문에 위협을 받게 되는데 브라우저에서 자바스크립트롤 할 수 있는 것 중에는
1. Ajax Call을 해서 API를 호출 할 수 있다
2. 다이나믹하게 DOM을 제어할 수 있다
3. 인증 정보를 브라우저에 저장할 수 있다
4. 인증 정보를 불러 올 수 있다
브라우저에서 자바스크립트로 할 수 있는 것들로 인해 공격에 시달리게 되는데 SS와 CSRF가 있다

XSS(Cross Site Scripting)

XSS는 Cross Site Scripting의 약자로 CSS라고 하는게 맞지만 이미 CSS가 Cascading Style Sheets의 약어로 사용되고 있어서 크로스를 형상화한 X를 사용해서 XSS라고 불린다. XSS는 클라이언트가 서버를 신뢰하기 때문에 발생하는 이슈로 게시판이나 웹 메일 등에 스크립트 코드를 삽입해 개발자가 고려하지 않은 기능이 작동하게 하는 공격이다.

XSS로 인해 피해자를 피싱사이트에 접속하게 하여 개인정보의 탈취나 금전적인 손해를 입힐 수 도 있다.

XSS의 방지법으로는 Script문자를 필터링하거나 htmlentities를 사용하여 방지할 수 있다.

CSRF(Cross-Site request forgery)

CSRF는 Cross-Site request forgery의 약자로 사이트 간 요청위조를 뜻한다. CSRF는 서버가 클라이언트를 신뢰해서 발생하는 이슈로 서버는 인증정보를 가져오게 되면 해당 사용자를 신뢰하는데 인증정보를 가진 채 해커의 링크를 누르면, 해커가 인증정보를 가로채서 서버에 사용자의 의도와는 다른 요청을 보내게 된다.
예방방법으로 XSS취약점이 없는지 확인하고 GET방식과 POST방식을 확실히 구분해야 한다.

profile
주니어 개발자가 되고싶은

0개의 댓글