# TQTA
Today's Answer 02-3
3. 웹 브라우저에서 데이터를 필터링 하는 방식을 사용할 수 있는데, 이는 웹 보안에서 중요한 것이라고 한다. 이때 외부 라이브러리를 사용할 수 있는 방법이 있다는데 장단점이 무엇일까? 이걸 사용함으로써 얻을 수 있는 보안이슈는 뭘까? XSS 방어를 위한 외부 보안 라이브러리 MS의 AntiXSS, OWASP의 ESAPI 라이브러리, Naver의 Lucy XSS Filter 등이 있다. 장점 : XML 설정만으로 XSS 방어가 가능 비즈니스 레이어의 코드 수정이 발생하지 않는다. 개발자가 XSS 방어를 신경쓰지 않아도 된다 XSS 방어가 누락되지 않는다 설정 파일 하나로 XSS 방어 절차가 파악됨 단점 : 파라미터명에 대해 관리가 필요 일괄 적용되어 전체가 영향 받으므로 정확한 필터링 룰 정의가 중요 100%는 없기에 단독 사용만으로는
Today's Answer 02-2
2. 웹 브라우저 스크립트 작성시 일어날 수 있는 보안 이슈에 대해서도 꼬리질문이 있었는데 XSS(Cross-site scripting) 공격과 관련된 것이었다. 그 중 XSS Cheat Sheet, HttpOnly 키워드를 얻었는데 이것과 PHP의 상관관계가 있을까? 웹 개발시 PHP는 필수적일까? 어떤 용도로 사용될까? XSS(Cross-Site Script) >사용자가 요청한 페이지에 강제로 악성 스크립트를 삽입해서 브라우저에서 악의적인 동작이 실행되도록 하는 공격기법. 어플리케이션에서 브라우저로 데이터를 전송하는 페이지에서 사용자가 입력한 데이터를 검증하지 않거나, 데이터 출력시 데이터를 필터링하지 않을 때 발생한다. 일반적으로 Javascript에서 발생하지만 동적 데이터를 생성하는 모든 언어에서 발생할 가능성이 있다. (PHP도 그러하여 꼬리질문에 나온듯하다.) 약자를
Today's Answer 02-1
1. 오늘 브라우저의 DOMContentLoaded 이벤트에 대해 꼬리질문이 있었는데, async와 defer 질문을 넘어 script에 삽입되는 type 속성의 기본값에 대해 정리해야될 것 같다. 보통 생략하는 경우가 많은데, javascript랑 css말고도 ajax나 api연결시에도 사용한다고 되어있는데 일반 js에 삽입되는 type과는 다른 목적인 것 같다. 삽입되는 위치와 용도의 차이점이 뭘까? 알아보기론 Content-type 형태였음. 그리고 js MIME에 대해서도 정의해봐야할듯. script에 삽입되는 type의 비교 (javascript) 1번 type 생략 (기본값) script 태그에서 type을 생략할 경우 2번으로 재번역하여 반영됨. 구글 확인 결과, 보통 생략하지않고 2번으로 정의함. 2번 text/javascript 가장 범용적으로
Today's Question 02
오늘 브라우저의 DOMContentLoaded 이벤트에 대해 꼬리질문이 있었는데, async와 defer 질문을 넘어 script에 삽입되는 type 속성의 기본값에 대해 정리해야될 것 같다. 보통 생략하는 경우가 많은데, javascript랑 css말고도 ajax나 api연결시에도 사용한다고 되어있는데 일반 js에 삽입되는 type과는 다른 목적인 것 같다. 삽입되는 위치와 용도의 차이점이 뭘까? 알아보기론 Content-type 형태였음. 그리고 js MIME에 대해서도 정의해봐야할듯. 웹 브라우저 스크립트 작성시 일어날 수 있는 보안 이슈에 대해서도 꼬리질문이 있었는데 XSS(Cross-site scripting) 공격과 관련된 것이었다. 그 중 XSS Cheat Sheet, HttpOnly 키워드를 얻었는데 이것과 PHP의 상관관계가 있을까? 웹 개발시 PHP는 필수적일까? 어떤 용도로 사용될까? 웹 브라우저에서 데이터를
Today's Answer 01
1. Webkit을 브라우저 작동 원리를 공부하다 알게 되었는데 이는 브라우저 엔진이다. 아래와 같은 코드를 원리도 모르고 사용했었다. 브라우저별 그 브라우저 엔진을 사용하는 이유는 뭘까? 그리고 이 코드를 통해 어떤 효과를 얻을 수 있을까? 크로스 브라우징과 관련 있을 듯 브라우저 엔진의 정의와 종류, 역할 우선 브라우저 엔진은 렌더링 엔진, 레이아웃 엔진으로도 불린다. 렌더링 엔진의 역할은 요청 받은 내용을 브라우저 화면에 표시하는 일. 보통 자신의 브라우저에서 사용할 엔진을 자체적으로 개발하거나, 기존에 개발된 엔진을 포크시켜 개발하여 사용한다. 오페라 브라우저에서 사용하는 Presto(프레스토), KHTML엔진에서 *fork하여 애플에서 개발한 웹키트(Webkit)는 사파리와 구글 크롬이 사용중인데 애플과 구글은 엔진을 서로 fork 하면서 파편화가 진행되었습니다. 애플은
Today's Question 01
Webkit을 브라우저 작동 원리를 공부하다 알게 되었는데 이는 브라우저 엔진이다. 아래와 같은 코드를 원리도 모르고 사용했었다. 브라우저별 그 브라우저 엔진을 사용하는 이유는 뭘까? 그리고 이 코드를 통해 어떤 효과를 얻을 수 있을까? 크로스 브라우징과 관련 있을 듯 실무에서 JQuery를 사용했었다. 개발자들은 JQuery를 쓰는 것에 회의적이다. 안쓰는 이유는 뭘까? 그리고 바닐라 JS와 순수 자바스크립트를 쓰는 이유? 다른 점? Repaint, Reflow 최소화를 위해 CPU가 처리할 부분을 GPU로 넘기기 위해 width 등의 속성대신 transform이랑 opacity를 사용한다는 부분을 알게되었는데 CPU 사용과 GPU 사용의 정확한 구조와 차이가 궁금하고, 그리고 transform이랑 opacity 말고도 gpu를 사용할 수 있는 css 속성이 있을까? HTML을 파싱할 때와 CSS를 파싱할 때 공식 작성 명세의 차이가 있었다. HTML