React / Next.js

React āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ & āđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”

āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™ XSS, āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™ CSRF, dangerouslySetInnerHTML, Content Security Policy, HTTPS, sanitization

22 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Senior
1

āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ XSS (Cross-Site Scripting) āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ XSS āđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļšāļāļēāļĢāđāļ—āļĢāļāđ‚āļ„āđ‰āļ” JavaScript āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ­āļąāļ™āļ•āļĢāļēāļĒāđ€āļ‚āđ‰āļēāđ„āļ›āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ€āļ§āđ‡āļšāđ€āļžāļ·āđˆāļ­āļĢāļąāļ™āđƒāļ™āđ€āļšāļĢāļēāļ§āđŒāđ€āļ‹āļ­āļĢāđŒāļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āļ„āļ™āļ­āļ·āđˆāļ™ āļœāļđāđ‰āđ‚āļˆāļĄāļ•āļĩāđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļāļŠāđˆāļ­āļ‡āđ‚āļŦāļ§āđˆāļ”āđ‰āļēāļ™ validation āļŦāļĢāļ·āļ­ escaping āđ€āļžāļ·āđˆāļ­āļ‚āđ‚āļĄāļĒ cookie, session token āļŦāļĢāļ·āļ­āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ­āļ™āļļāļāļēāļ• React āļĄāļĩāļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™āđƒāļ™āļ•āļąāļ§āđ‚āļ”āļĒ escape āļ„āđˆāļē JSX āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī āđāļ•āđˆāļĒāļąāļ‡āļ„āļ‡āļĄāļĩāļŠāđˆāļ­āļ‡āđ‚āļŦāļ§āđˆāļāļąāļš dangerouslySetInnerHTML āļŦāļĢāļ·āļ­āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ DOM āđ‚āļ”āļĒāļ•āļĢāļ‡

2

React āļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ XSS āđ‚āļ”āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

React escape āļ„āđˆāļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ—āļĩāđˆāđāļ—āļĢāļāļœāđˆāļēāļ™ JSX āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđ‚āļ”āļĒāđāļ›āļĨāļ‡āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ˜āļĢāļĢāļĄāļ”āļēāļāđˆāļ­āļ™āļāļēāļĢ render āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™āļ™āļĩāđ‰āļŠāđˆāļ§āļĒāļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļĢāļąāļ™āļŠāļ„āļĢāļīāļ›āļ•āđŒāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ­āļąāļ™āļ•āļĢāļēāļĒāđāļĄāđ‰āļˆāļ°āļĄāļĩāļāļēāļĢāđāļ—āļĢāļāđ‚āļ„āđ‰āļ” HTML āđ€āļ‚āđ‰āļēāđ„āļ›āđƒāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āđāļ•āļāļ•āđˆāļēāļ‡āļˆāļēāļ innerHTML āļ—āļĩāđˆāđāļ›āļĨāļ‡āđāļĨāļ°āļĢāļąāļ™ HTML, React āļ–āļ·āļ­āļ§āđˆāļēāđāļ—āđ‡āļāđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ˜āļĢāļĢāļĄāļ”āļē āļ—āļģāđƒāļŦāđ‰āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđāļ—āļĢāļ JavaScript āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ­āļąāļ™āļ•āļĢāļēāļĒāļœāđˆāļēāļ™ props āļŦāļĢāļ·āļ­ state āļĄāļēāļ•āļĢāļāļēāļ™āđ„āļ”āđ‰

3

āļ—āļģāđ„āļĄ dangerouslySetInnerHTML āļ–āļķāļ‡āļ–āļ·āļ­āļ§āđˆāļēāļ­āļąāļ™āļ•āļĢāļēāļĒāđƒāļ™ React?

āļ„āļģāļ•āļ­āļš

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ™āļĩāđ‰āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™ XSS āļ‚āļ­āļ‡ React āđ‚āļ”āļĒāļāļēāļĢāđāļ—āļĢāļ HTML āļ”āļīāļšāđ‚āļ”āļĒāļ•āļĢāļ‡āļĨāļ‡āđƒāļ™ DOM āđ‚āļ”āļĒāđ„āļĄāđˆāļĄāļĩāļāļēāļĢ escape āļŦāļēāļāđ€āļ™āļ·āđ‰āļ­āļŦāļēāļĄāļēāļˆāļēāļāđāļŦāļĨāđˆāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļ™āđˆāļēāđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āļŦāļĢāļ·āļ­ API āļ āļēāļĒāļ™āļ­āļ āļ­āļēāļˆāļĄāļĩ JavaScript āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ­āļąāļ™āļ•āļĢāļēāļĒāļ—āļĩāđˆāļˆāļ°āļ–āļđāļāļĢāļąāļ™ āļŠāļ·āđˆāļ­āļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™ dangerouslySetInnerHTML āļšāļąāļ‡āļ„āļąāļšāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļĢāļąāļšāļĢāļđāđ‰āļ–āļķāļ‡āļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡āļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļ™āļģ sanitization āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļĄāļēāđƒāļŠāđ‰āļāļąāļš library āļ­āļĒāđˆāļēāļ‡ DOMPurify

4

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļŦāļĨāļąāļāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ XSS āđāļšāļš Stored āđāļĨāļ° Reflected āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

5

āļ„āļ§āļĢāđƒāļŠāđ‰āđāļ™āļ§āļ—āļēāļ‡āđƒāļ”āđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡ HTML āļˆāļēāļ API āļ āļēāļĒāļ™āļ­āļāđƒāļ™ React?

+19 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ React / Next.js āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ JavaScript

Junior
25 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ React

Junior
20 āļ„āļģāļ–āļēāļĄ

React Hooks

Junior
22 āļ„āļģāļ–āļēāļĄ

āļ§āļ‡āļˆāļĢāļŠāļĩāļ§āļīāļ•āļ‚āļ­āļ‡ component

Junior
18 āļ„āļģāļ–āļēāļĄ

React Router

Junior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ state āļ”āđ‰āļ§āļĒ Context

Junior
18 āļ„āļģāļ–āļēāļĄ

āļŸāļ­āļĢāđŒāļĄāđāļĨāļ° Controlled Components

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ° API

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

React Query (TanStack Query)

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Styling & CSS-in-JS

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Next.js

Mid-Level
25 āļ„āļģāļ–āļēāļĄ

TypeScript āļāļąāļš React

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ Next.js

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

Server Actions āļ‚āļ­āļ‡ Next.js

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļāļģāļŦāļ™āļ”āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āđāļĨāļ°āļāļēāļĢāļ™āļģāļ—āļēāļ‡āđƒāļ™ Next.js

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

API Routes āđƒāļ™ Next.js

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Metadata & SEO āđƒāļ™ Next.js

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

Middleware āđāļĨāļ° Auth āđƒāļ™ Next.js

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ—āļ”āļŠāļ­āļš React

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Zustand State Management

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž React

Senior
22 āļ„āļģāļ–āļēāļĄ

Error Boundaries & āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”

Senior
18 āļ„āļģāļ–āļēāļĄ

Advanced React Patterns

Senior
20 āļ„āļģāļ–āļēāļĄ

āļŸāļĩāđ€āļˆāļ­āļĢāđŒāļ‚āļąāđ‰āļ™āļŠāļđāļ‡āļ‚āļ­āļ‡ Next.js

Senior
24 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢ Deploy & Production āļ‚āļ­āļ‡ Next.js

Senior
20 āļ„āļģāļ–āļēāļĄ

Architecture & Design Patterns

Senior
22 āļ„āļģāļ–āļēāļĄ

React Server Components

Senior
26 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđāļ›āļĨāļ āļēāļĐāļē Next.js

Senior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ React / Next.js āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ