Open minjeongss opened 1 month ago
async 어트리뷰트를 사용하는 자바스크립트 예시는 무엇이 있는가? (DOM 생성이 완료되기 이전에 실행되- 어도 괜찮은 예시가 궁금합니다) (김민정)
<!-- Google Analytics는 일반적으로 다음과 같이 삽입합니다. -->
<script async src="https://google-analytics.com/analytics.js"></script>
HTML 마크업 문자 파싱함에 의해 크로스 사이트 스크립팅 공격에 취약해지는 이유는 무엇인가? (김민정)
사용자 입력을 검증하지 않으면 악성 스크립트가 HTML 문서에 삽입될 수 있음
예시
<script>alert('XSS')</script>
해결 방법: 사용자 입력 정규 표현식과 같은 방법으로 검증
DOM
Virtual DOM
DOM
Virtual DOM
DOM
Virtual DOM
async 어트리뷰트는 JavaScript 파일을 비동기적으로 로드할 때 주로 사용됨
<script async src="api-fetch.js"></script>
<script async src="analytics.js"></script>
<script async src="utils.js"></script>
렌더링 방식 DOM: 변경이 있을 때마다 실제 DOM을 직접 조작한다. 이는 브라우저가 리플로우와 리페인트 과정을 거치게 하여 성능에 영향을 줄 수 있습니다. Virtual DOM: 변경사항을 먼저 가상 DOM에 적용한 후, 실제 DOM과 비교하여 차이가 있는 부분만 실제 DOM에 적용한다.
데이터가 변경될 때 마다 DOM은 매번 처음부터 다시 화면이 그려지는 불필요한 반복이 발생된다. 그래서 DOM을 조작하는 Virtual DOM이 탄생하게 되었다. Virtual Dom은 변화가 실제 DOM에서 적용되기 전에 가상의 DOM을 거쳐서 계산 단계를 줄이고 효율적인 DOM조작을 가능하게 만들어준다. 만약 데이터가 변경되지 않는 웹 페이지라면 일반 DOM이 성능이 좋을 수 있고, 장바구니 등 사용자에 따라 데이터가 변경되는 웹페이지라면 DOM 조작이 많이 발생하기에 상황에 맞게 virtual DOM을 사용해야 한다
사용자 입력이나 외부 소스에서 온 데이터를 적절히 검증하거나 이스케이프하지 않고 그대로 HTML에 삽입하면, 공격자가 악의적인 스크립트를 주입할 수 있다.
브라우저는 HTML을 파싱할 때 Githubissues.
📚 분량
🎤 발표자
김민석
질문
38장
async 어트리뷰트를 사용하는 자바스크립트 예시는 무엇이 있는가? (DOM 생성이 완료되기 이전에 실행되어도 괜찮은 예시가 궁금합니다) (김민정)
39장