{"id":5115,"date":"2025-12-09T12:30:53","date_gmt":"2025-12-09T03:30:53","guid":{"rendered":"https:\/\/dohokin.com\/?p=5115"},"modified":"2025-12-09T12:30:53","modified_gmt":"2025-12-09T03:30:53","slug":"react-%ec%b7%a8%ec%95%bd%ec%a0%90%ec%97%90-%eb%8c%80%ed%95%9c-%ec%9d%b4%ed%95%b4","status":"publish","type":"post","link":"https:\/\/dohokin.com\/?p=5115","title":{"rendered":"React \ucde8\uc57d\uc810\uc5d0 \ub300\ud55c \uc774\ud574"},"content":{"rendered":"<h1>\ub9ac\uc561\ud2b8\uc5d0\uc11c\uc758 XSS(\uad50\ucc28 \uc2a4\ud06c\ub9bd\ud305) \ucde8\uc57d\uc810<\/h1>\n<p>\ub9ac\uc561\ud2b8\ub294 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ucd95\ud558\uae30 \uc704\ud55c \uc778\uae30 \uc788\ub294 JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c, XSS(\uad50\ucc28 \uc2a4\ud06c\ub9bd\ud305) \uacf5\uaca9\uc5d0 \ub300\ud55c \ucde8\uc57d\uc131\uc744 \uac16\uace0 \uc788\uc2b5\ub2c8\ub2e4. XSS\ub780 \uacf5\uaca9\uc790\uac00 \uc545\uc758\uc801\uc778 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc6f9 \ud398\uc774\uc9c0\uc5d0 \uc0bd\uc785\ud558\uc5ec \uc0ac\uc6a9\uc790\uc758 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uacf5\uaca9 \uae30\ubc95\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uacf5\uaca9\uc740 \uc8fc\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \uacbd\uc6b0\uc5d0 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.1. **\uc0ac\uc6a9\uc790 \uc785\ub825 \ucc98\ub9ac**: \ub9ac\uc561\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c\ub294 \uc0ac\uc6a9\uc790\ub85c\ubd80\ud130 \uc785\ub825\ubc1b\uc740 \ub370\uc774\ud130\ub97c \uc9c1\uc811 DOM\uc5d0 \uc0bd\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub54c \uc0ac\uc6a9\uc790\uac00 \uc545\uc758\uc801\uc778 JavaScript \ucf54\ub4dc\ub97c \ud3ec\ud568\ud55c \uc785\ub825\uc744 \ud560 \uacbd\uc6b0, \uc774\ub97c \uc801\uc808\ud788 \ud544\ud130\ub9c1\ud558\uc9c0 \uc54a\uc73c\uba74 XSS \uacf5\uaca9\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.2. **DangerouslySetInnerHTML**: \ub9ac\uc561\ud2b8\ub294 HTML\uc744 \uc548\uc804\ud558\uac8c \ud45c\uc2dc\ud558\uae30 \uc704\ud55c \ubc29\ubc95\uc778 `dangerouslySetInnerHTML`\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc774 \uc18d\uc131\uc744 \uc0ac\uc6a9\ud560 \ub54c \uc8fc\uc758\ud558\uc9c0 \uc54a\uc73c\uba74, \uc0ac\uc6a9\uc790\uac00 \uc0bd\uc785\ud55c HTML \ucf54\ub4dc\uac00 \uadf8\ub300\ub85c \uc2e4\ud589\ub418\uc5b4 XSS \ucde8\uc57d\uc810\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.3. **\uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac \ubc0f \uc885\uc18d\uc131**: \ub9ac\uc561\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub098 \ud328\ud0a4\uc9c0\uac00 \ucde8\uc57d\ud560 \uacbd\uc6b0, \uc774\ub97c \ud1b5\ud574 XSS \uacf5\uaca9\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\ub9ac\uc561\ud2b8\uc5d0\uc11c XSS \uacf5\uaca9\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c\ub294, \ub2e4\uc74c\uacfc \uac19\uc740 \uc608\ubc29 \uc870\uce58\ub97c \ucde8\ud574\uc57c \ud569\ub2c8\ub2e4:- \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \uc801\uc808\ud788 \uc774\uc2a4\ucf00\uc774\ud504\ud558\uac70\ub098 \ud544\ud130\ub9c1\ud558\uc5ec \uc545\uc758\uc801\uc778 \ucf54\ub4dc\ub97c \uc81c\uac70\ud574\uc57c \ud569\ub2c8\ub2e4.- `dangerouslySetInnerHTML`\ub97c \uc0ac\uc6a9\ud574\uc57c \ud560 \uacbd\uc6b0, \uc2e0\ub8b0\ud560 \uc218 \uc788\ub294 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud558\uace0, \uac00\ub2a5\ud55c \ud55c \uc0ac\uc6a9\uc744 \ud53c\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.- \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud560 \ub54c\ub294 \uc2e0\ub8b0\ud560 \uc218 \uc788\ub294 \uc18c\uc2a4\ub97c \uc120\ud0dd\ud558\uace0, \uc790\uc8fc \uc5c5\ub370\uc774\ud2b8\ud558\uc5ec \ucd5c\uc2e0 \ubcf4\uc548 \ud328\uce58\ub97c \uc801\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.\uacb0\ub860\uc801\uc73c\ub85c, \ub9ac\uc561\ud2b8 \uac1c\ubc1c\uc790\uac00 XSS \uacf5\uaca9\uc73c\ub85c\ubd80\ud130 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubcf4\ud638\ud558\uae30 \uc704\ud574\uc11c\ub294, \ucf54\ub4dc\ub97c \uc791\uc131\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \ubcf4\uc548\uc744 \uc5fc\ub450\uc5d0 \ub450\uace0 \uc801\uc808\ud55c \ubcf4\uc548 \uc870\uce58\ub97c \ucde8\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>JSX\uc758 \ubcf4\uc548 \ub9ac\uc2a4\ud06c<\/h1>\n<p>JSX\ub294 JavaScript XML\uc758 \uc57d\uc790\ub85c, React\uc5d0\uc11c UI \uc694\uc18c\ub97c \uc815\uc758\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uad6c\ubb38 \ud655\uc7a5\uc785\ub2c8\ub2e4. \uadf8\ub7ec\ub098 JSX\ub97c \uc0ac\uc6a9\ud558\ub294 \ub370\uc5d0\ub294 \uba87 \uac00\uc9c0 \ubcf4\uc548 \ub9ac\uc2a4\ud06c\uac00 \ub3d9\ubc18\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uccab \ubc88\uc9f8\ub85c, JSX\ub294 HTML\uacfc \uc720\uc0ac\ud55c \uad6c\ubb38\uc73c\ub85c \uc791\uc131\ub418\uae30 \ub54c\ubb38\uc5d0 XSS(\uad50\ucc28 \uc0ac\uc774\ud2b8 \uc2a4\ud06c\ub9bd\ud305) \uacf5\uaca9\uc5d0 \ucde8\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\uac00 \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \uc801\uc808\ud788 \uac80\uc99d\ud558\uc9c0 \uc54a\uc73c\uba74 \uc545\uc758\uc801\uc778 \uc2a4\ud06c\ub9bd\ud2b8\uac00 \ud3ec\ud568\ub41c \ub370\uc774\ud130\ub97c \ub80c\ub354\ub9c1\ud558\uc5ec, \uc0ac\uc6a9\uc790\uc758 \uc138\uc158 \ud0c8\ucde8\ub098 \uc815\ubcf4 \uc720\ucd9c\ub85c \uc774\uc5b4\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c\ub294 React\uc758 \ub0b4\uc7a5\ub41c escaping \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \uc548\uc804\ud558\uac8c \ucc98\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4.\ub450 \ubc88\uc9f8\ub85c, JSX\ub294 \ubd88\ud544\uc694\ud55c \uc815\ubcf4 \ub178\ucd9c \uc704\ud5d8\uc744 \uc99d\uac00\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, JSX\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uc131\ub41c \ucf54\ub4dc\uac00 \uc678\ubd80\uc5d0 \ub178\ucd9c\ub420 \uacbd\uc6b0, \ub0b4\ubd80 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc774\ub098 API \ud0a4\uc640 \uac19\uc740 \ubbfc\uac10\ud55c \uc815\ubcf4\uac00 \ub4dc\ub7ec\ub0a0 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc815\ubcf4\ub97c \ubcf4\ud638\ud558\uae30 \uc704\ud574\uc11c\ub294 \ud658\uacbd \ubcc0\uc218 \ubc0f \uc801\uc808\ud55c \ucf54\ub4dc\ub97c \ud1b5\ud574 \ubbfc\uac10\ud55c \ub370\uc774\ud130\ub97c \uc228\uaca8\uc57c \ud569\ub2c8\ub2e4.\ub9c8\uc9c0\ub9c9\uc73c\ub85c, JSX\ub97c \ud1b5\ud574 \ub3d9\uc801\uc73c\ub85c \uc0dd\uc131\ub41c \ub0b4\uc6a9\uc740 \ucf54\ub4dc \ub9ac\ubdf0 \ubc0f \ud14c\uc2a4\ud2b8 \uacfc\uc815\uc5d0\uc11c \ucd94\uac00\uc801\uc778 \ubcf5\uc7a1\uc131\uc744 \ucd08\ub798\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \ubcf4\uc548 \ucde8\uc57d\uc810\uc744 \ucc3e\uc544\ub0b4\uae30 \uc5b4\ub835\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc73c\ubbc0\ub85c, \uc798 \uc815\uc758\ub41c \ucf54\ub4dc \ud45c\uc900 \ubc0f \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c \uc218\uba85 \uc8fc\uae30\ub97c \ud1b5\ud574 \uc774\ub7ec\ud55c \ub9ac\uc2a4\ud06c\ub97c \ucd5c\uc18c\ud654\ud574\uc57c \ud569\ub2c8\ub2e4.\uacb0\ub860\uc801\uc73c\ub85c, JSX\uc758 \uc0ac\uc6a9\uc740 \uc8fc\uc758\ud558\uc5ec\uc57c \ud558\uba70, \ubcf4\uc548\uc744 \uace0\ub824\ud55c \uac1c\ubc1c \uad00\ud589\uc744 \ucca0\uc800\ud788 \ub530\ub974\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n<h1>\ucef4\ud3ec\ub10c\ud2b8 \uc7ac\uc0ac\uc6a9 \uc2dc \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \ucde8\uc57d\uc810<\/h1>\n<p>\ucef4\ud3ec\ub10c\ud2b8 \uc7ac\uc0ac\uc6a9\uc740 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc5d0\uc11c \ud6a8\uc728\uc131\uc744 \ub192\uc774\ub294 \uc911\uc694\ud55c \uc804\ub7b5\uc774\uc9c0\ub9cc, \uc5ec\ub7ec \uac00\uc9c0 \ucde8\uc57d\uc810\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uccab\uc9f8\ub85c, \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc7ac\uc0ac\uc6a9\ud560 \uacbd\uc6b0, \ud574\ub2f9 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \uc54c\ub824\uc9c0\uc9c0 \uc54a\uc740 \ubcf4\uc548 \ucde8\uc57d\uc810\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub458\uc9f8\ub85c, \uc7ac\uc0ac\uc6a9\ub41c \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \uc758\uc874\ud558\ub294 \ub2e4\ub978 \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc774 \uc5c5\ub370\uc774\ud2b8 \ub418\uc9c0 \uc54a\uc73c\uba74, \ud2b9\uc815 \ubc84\uc804\uc758 \ucde8\uc57d\uc810\uc5d0 \ub178\ucd9c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc14b\uc9f8\ub85c, \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0ac\uc6a9 \ubaa9\uc801\uacfc \ud658\uacbd\uc774 \ub2ec\ub77c\uc9c8 \uacbd\uc6b0 \uc608\uc0c1\uce58 \ubabb\ud55c \ub3d9\uc791\uc744 \uc77c\uc73c\ud0ac \uc218 \uc788\uc73c\uba70, \uc774\ub85c \uc778\ud574 \ubcf4\uc548 \uc704\ud611\uc774 \uc99d\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub137\uc9f8\ub85c, \ucef4\ud3ec\ub10c\ud2b8\uc758 \ub0b4\ubd80 \uad6c\ud604\uc744 \uc774\ud574\ud558\uc9c0 \ubabb\ud558\uba74 \uc758\ub3c4\ud558\uc9c0 \uc54a\uac8c \ubcf4\uc548\uc0c1\uc758 \ubb38\uc81c\ub97c \ucd08\ub798\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc774\uc720\ub85c, \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc7ac\uc0ac\uc6a9\ud560 \ub54c\ub294 \ucca0\uc800\ud55c \uac80\ud1a0\uc640 \ud14c\uc2a4\ud2b8\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<h1>\ub9ac\uc561\ud2b8 \ub77c\uc6b0\ud130\uc5d0\uc11c\uc758 \ubcf4\uc548 \ubb38\uc81c<\/h1>\n<p>\ub9ac\uc561\ud2b8 \ub77c\uc6b0\ud130\ub97c \uc0ac\uc6a9\ud560 \ub54c \uc8fc\uc758\ud574\uc57c \ud560 \ubcf4\uc548 \ubb38\uc81c\ub294 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uccab \ubc88\uc9f8\ub85c, URL\uc744 \ud1b5\ud55c \uc9c1\uc811\uc801\uc778 \uc811\uadfc\uc73c\ub85c \uc778\ud574 \ubd88\ud544\uc694\ud55c \uc815\ubcf4 \ub178\ucd9c\uc774\ub098, \ubbfc\uac10\ud55c \ub370\uc774\ud130\uc5d0 \ub300\ud55c \uc811\uadfc\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574, \uc0ac\uc6a9\uc790 \uc778\uc99d\uc744 \uc801\uc808\ud788 \uad6c\ud604\ud558\uace0 \uad8c\ud55c\uc774 \uc5c6\ub294 \uc0ac\uc6a9\uc790\uac00 \ud2b9\uc815 \uacbd\ub85c\uc5d0 \uc811\uadfc\ud558\uc9c0 \ubabb\ud558\ub3c4\ub85d \ud574\uc57c \ud569\ub2c8\ub2e4.\ub450 \ubc88\uc9f8 \ubb38\uc81c\ub294 XSS(\uad50\ucc28 \uc0ac\uc774\ud2b8 \uc2a4\ud06c\ub9bd\ud305) \uacf5\uaca9\uc785\ub2c8\ub2e4. \ub9ac\uc561\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \uc720\uc800\uc758 \uc785\ub825\uc744 \ucc98\ub9ac\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc73c\ubbc0\ub85c, \uc774\ub7ec\ud55c \uc785\ub825\uc744 \uc801\uc808\ud788 \ud544\ud130\ub9c1\ud558\uac70\ub098 \uc774\uc2a4\ucf00\uc774\ud504 \ucc98\ub9ac\ud558\uc9c0 \uc54a\uc73c\uba74 \uacf5\uaca9\uc790\uac00 \uc545\uc758\uc801\uc778 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc8fc\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\uc138 \ubc88\uc9f8\ub85c, \uc800\uc7a5\ub41c \uc138\uc158 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uad00\ub9ac\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, JWT(JSON Web Token)\uc640 \uac19\uc740 \ud1a0\ud070\uc744 \uc0ac\uc6a9\ud560 \uacbd\uc6b0, \ud1a0\ud070\uc758 \uc548\uc804\uc131\uc744 \ubcf4\uc7a5\ud574\uc57c \ud558\uba70, CSRF(\uad50\ucc28 \uc0ac\uc774\ud2b8 \uc694\uccad \uc704\uc870) \uacf5\uaca9\uc5d0 \ub300\ud55c \ubc29\uc5b4\ub3c4 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 SameSite \ucfe0\ud0a4 \uc18d\uc131\uc744 \uc124\uc815\ud558\uac70\ub098, CSRF \ud1a0\ud070\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc694\uccad\uc758 \uc9c4\uc704\ub97c \uac80\uc99d\ud558\ub294 \uac83\uc774 \ud6a8\uacfc\uc801\uc785\ub2c8\ub2e4.\ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ub9ac\uc561\ud2b8 \ub77c\uc6b0\ud130\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \ub54c\ub294 HTTPS\ub97c \uac15\uc81c\ub85c \uc0ac\uc6a9\ud558\uc5ec \uc911\uac04\uc790 \uacf5\uaca9\uc744 \ubc29\uc9c0\ud558\uace0, \ubaa8\ub4e0 \ub370\uc774\ud130 \uc804\uc1a1\uc774 \uc548\uc804\ud558\uac8c \uc774\ub8e8\uc5b4\uc9c0\ub3c4\ub85d \ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub370\uc774\ud130\uc758 \ubb34\uacb0\uc131\uacfc \uae30\ubc00\uc131\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\uacb0\ub860\uc801\uc73c\ub85c, \ub9ac\uc561\ud2b8 \ub77c\uc6b0\ud130\ub97c \uc0ac\uc6a9\ud560 \ub54c\ub294 \uc0ac\uc6a9\uc790 \uc778\uc99d \ubc0f \uad8c\ud55c \uad00\ub9ac, XSS \ubc29\uc5b4, \uc138\uc158 \ub370\uc774\ud130 \ubcf4\ud638, HTTPS \uc0ac\uc6a9 \ub4f1 \ub2e4\uc591\ud55c \ubcf4\uc548 \ubb38\uc81c\uac00 \uc874\uc7ac\ud558\ubbc0\ub85c, \uc774\ub97c \ucda9\ubd84\ud788 \uace0\ub824\ud558\uc5ec \uc548\uc804\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uac1c\ubc1c\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>\uc0c1\ud0dc \uad00\ub9ac \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ubcf4\uc548: \uc774\ud574\uc640 \uc801\uc6a9<\/h1>\n<p>\uc0c1\ud0dc \uad00\ub9ac \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc0c1\ud0dc\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \uad00\ub9ac\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \ub300\ud45c\uc801\uc778 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c\ub294 Redux, MobX, Vuex \ub4f1\uc774 \uc788\uc73c\uba70, \uc774\ub4e4 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc0c1\ud0dc\ub97c \uc911\uc559 \uc9d1\uc911\ud654\ud558\uc5ec \uad6c\uc131 \uc694\uc18c \uac04\uc758 \ub370\uc774\ud130 \ud750\ub984\uc744 \uc6a9\uc774\ud558\uac8c \ud558\uace0, \uc608\uce21 \uac00\ub2a5\ud55c \uc0c1\ud0dc \uad00\ub9ac\ub97c \uac00\ub2a5\ud558\uac8c \ud569\ub2c8\ub2e4.\uc0c1\ud0dc \uad00\ub9ac \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud560 \ub54c, \ubcf4\uc548 \ubb38\uc81c\ub3c4 \uc911\uc694\ud55c \uc694\uc18c\ub85c \uace0\ub824\ud574\uc57c \ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc0ac\uc6a9\uc790\uc758 \ub370\uc774\ud130\ub098 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc911\uc694\ud55c \uc0c1\ud0dc\uac00 \uc798\ubabb \ub178\ucd9c\ub418\uac70\ub098 \uc545\uc758\uc801\uc778 \uacf5\uaca9\uc5d0 \ucde8\uc57d\ud574\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubb38\uc81c\ub4e4\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574 \uba87 \uac00\uc9c0 \ubcf4\uc548 \uad00\ud589\uc744 \uc900\uc218\ud574\uc57c \ud569\ub2c8\ub2e4.\uccab\uc9f8, \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \uc801\uc808\ud558\uac8c \uac80\uc99d\ud558\uace0 \ud544\ud130\ub9c1\ud574\uc57c \ud569\ub2c8\ub2e4. XSS(\uad50\ucc28 \uc0ac\uc774\ud2b8 \uc2a4\ud06c\ub9bd\ud305) \uacf5\uaca9\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\uc790\ub85c\ubd80\ud130 \uc785\ub825\ub41c \ub370\uc774\ud130\ub294 \ud56d\uc0c1 \uc2e0\ub8b0\ud560 \uc218 \uc5c6\ub294 \uac83\uc73c\ub85c \uac04\uc8fc\ud574\uc57c \ud569\ub2c8\ub2e4.\ub458\uc9f8, \uc0c1\ud0dc \ub370\uc774\ud130\uc758 \uc554\ud638\ud654\ub97c \uace0\ub824\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc911\uc694 \ub370\uc774\ud130\ub294 \uc804\uc1a1 \ubc0f \uc800\uc7a5 \uc2dc \uc554\ud638\ud654\ud558\uc5ec \uc678\ubd80\uc758 \uc545\uc758\uc801\uc778 \uc811\uadfc\uc73c\ub85c\ubd80\ud130 \ubcf4\ud638\ud574\uc57c \ud569\ub2c8\ub2e4.\uc14b\uc9f8, \uc0c1\ud0dc \uad00\ub9ac \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \uc801\uc808\ud55c \uc811\uadfc \uc81c\uc5b4\ub97c \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \ud2b9\uc815 \uc0ac\uc6a9\uc790\ub9cc \uc0c1\ud0dc\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub3c4\ub85d \uad8c\ud55c\uc744 \uc124\uc815\ud558\uace0, \ubbfc\uac10\ud55c \uc815\ubcf4\ub294 \uc77c\ubc18 \uc0ac\uc6a9\uc790\uc640 \ubd84\ub9ac\ud558\uc5ec \uad00\ub9ac\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.\ub9c8\uc9c0\ub9c9\uc73c\ub85c, \uc815\uae30\uc801\uc778 \ubcf4\uc548 \uac10\uc0ac\uc640 \uc5c5\ub370\uc774\ud2b8\ub97c \ud1b5\ud574 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \ucde8\uc57d\uc810\uc744 \ucd5c\uc18c\ud654\ud574\uc57c \ud569\ub2c8\ub2e4. \uc9c0\uc18d\uc801\uc73c\ub85c \ubcf4\uc548 \ud328\uce58\ub97c \uc801\uc6a9\ud558\uc5ec \ucd5c\uc2e0 \uc0c1\ud0dc\ub97c \uc720\uc9c0\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.\uacb0\ub860\uc801\uc73c\ub85c, \uc0c1\ud0dc \uad00\ub9ac \ub77c\uc774\ube0c\ub7ec\ub9ac\ub294 \ud6a8\uc728\uc801\uc778 \ub370\uc774\ud130 \uad00\ub9ac\ub97c \uac00\ub2a5\ud558\uac8c \ud558\uc9c0\ub9cc, \uc774\ub97c \ubcf4\uc548 \uad00\uc810\uc5d0\uc11c \uc801\uc808\ud788 \ucc98\ub9ac\ud558\uc9c0 \uc54a\uc73c\uba74 \ud070 \uc704\ud5d8 \uc694\uc18c\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uac1c\ubc1c\uc790\ub294 \uc0c1\ud0dc \uad00\ub9ac \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud560 \ub54c \ubcf4\uc548 \uad00\ub828 \uad00\ud589\uc744 \ucca0\uc800\ud558\uac8c \uc900\uc218\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>API \ud638\ucd9c \uc2dc \ucde8\uc57d\uc810 \ubd84\uc11d<\/h1>\n<p>API(Application Programming Interface)\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac04\uc758 \uc0c1\ud638\uc791\uc6a9\uc744 \uac00\ub2a5\ud558\uac8c \ud558\ub294 \uc911\uc694\ud55c \uc694\uc18c\ub85c, \ud604\ub300 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud575\uc2ec \uad6c\uc131 \uc694\uc18c\uc785\ub2c8\ub2e4. \uadf8\ub7ec\ub098 API \uc0ac\uc6a9 \uc2dc \uc5ec\ub7ec \uac00\uc9c0 \ubcf4\uc548 \ucde8\uc57d\uc810\uc774 \uc874\uc7ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uccab\uc9f8, \uc778\uc99d \ubc0f \uad8c\ud55c \ubd80\uc5ec \uc624\ub958\uc785\ub2c8\ub2e4. \uc798\ubabb\ub41c \uc778\uc99d \uba54\ucee4\ub2c8\uc998\uc774\ub098 \ucde8\uc57d\ud55c \uc5d1\uc138\uc2a4 \uc81c\uc5b4\ub85c \uc778\ud574 \uacf5\uaca9\uc790\uac00 \ubbfc\uac10\ud55c \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub294 \uc704\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294 OAuth 2.0\uacfc \uac19\uc740 \uac15\ub825\ud55c \uc778\uc99d \ud504\ub85c\ud1a0\ucf5c\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \ub458\uc9f8, \ub370\uc774\ud130 \ub178\ucd9c\uc785\ub2c8\ub2e4. API\ub97c \ud1b5\ud574 \uc804\uc1a1\ub418\ub294 \ub370\uc774\ud130\ub294 \uc801\uc808\ud788 \uc554\ud638\ud654\ub418\uc5b4\uc57c \ud558\uba70, \ub85c\uadf8 \uae30\ub85d\uc5d0\ub3c4 \ubbfc\uac10\ud55c \uc815\ubcf4\uac00 \ud3ec\ud568\ub418\uc9c0 \uc54a\ub3c4\ub85d \uc8fc\uc758\ud574\uc57c \ud569\ub2c8\ub2e4. \uc14b\uc9f8, \uc785\ub825 \uac80\uc99d \ubd80\uc871\uc785\ub2c8\ub2e4. \uacf5\uaca9\uc790\ub294 API\ub97c \ud1b5\ud574 \uc545\uc758\uc801\uc778 \ub370\uc774\ud130\ub97c \uc804\uc1a1\ud558\uc5ec \uc11c\ubc84\ub97c \uacf5\uaca9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c\ub294 \ubaa8\ub4e0 \uc785\ub825\uc5d0 \ub300\ud55c \ucda9\ubd84\ud55c \uac80\uc99d\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \ub137\uc9f8, API \ud638\ucd9c \uc218 \uc81c\ud55c\uc758 \ubd80\uc7ac\uc785\ub2c8\ub2e4. \ub108\ubb34 \ub9ce\uc740 \uc694\uccad\uc744 \ud5c8\uc6a9\ud558\ub294 \uacbd\uc6b0 \uc11c\ube44\uc2a4 \uac70\ubd80 \uacf5\uaca9(DoS)\uc5d0 \ub178\ucd9c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c API \ud638\ucd9c\uc5d0 \ub300\ud55c \uc18d\ub3c4 \uc81c\ud55c(rate limiting)\uc744 \uc124\uc815\ud558\uc5ec\uc57c \ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ubcf4\uc548 \uc5c5\ub370\uc774\ud2b8\ub97c \uac8c\uc744\ub9ac\ud558\ub294 \uac83\ub3c4 \ud070 \ubb38\uc81c\uc785\ub2c8\ub2e4. \uc815\uae30\uc801\uc778 \ud328\uce58\uc640 \uc5c5\ub370\uc774\ud2b8\ub97c \ud1b5\ud574 \uc54c\ub824\uc9c4 \ucde8\uc57d\uc810\uc744 \ud574\uacb0\ud558\ub294 \uac83\uc774 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. \uc774\uc640 \uac19\uc740 \ucde8\uc57d\uc810 \ubd84\uc11d\uc744 \ud1b5\ud574 API\uc758 \ubcf4\uc548\uc744 \uac15\ud654\ud558\uba74, \ub370\uc774\ud130 \uc720\ucd9c\uacfc \uac19\uc740 \uc2ec\uac01\ud55c \ubcf4\uc548 \uc0ac\uace0\ub97c \ubbf8\uc5f0\uc5d0 \ubc29\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uac1c\ubc1c\uc790\uc640 \ubcf4\uc548 \ub2f4\ub2f9\uc790\ub294 \uc9c0\uc18d\uc801\uc73c\ub85c API\uc758 \ubcf4\uc548 \uc810\uac80\uc744 \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>\uc885\uc18d\uc131 \uad00\ub9ac\uc640 \ubcf4\uc548 \ub9ac\uc2a4\ud06c<\/h1>\n<p>\uc885\uc18d\uc131 \uad00\ub9ac\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc5d0\uc11c \ud544\uc218\uc801\uc778 \ubd80\ubd84\uc73c\ub85c, \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc81c\ub300\ub85c \uc791\ub3d9\ud558\uae30 \uc704\ud574 \uc758\uc874\ud558\ub294 \uc678\ubd80 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub098 \ud328\ud0a4\uc9c0\ub97c \uad00\ub9ac\ud558\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc885\uc18d\uc131\uc740 \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uacfc \uac1c\ubc1c \uc18d\ub3c4\ub97c \ub192\uc774\ub294 \ub370 \uae30\uc5ec\ud558\uc9c0\ub9cc, \ub3d9\uc2dc\uc5d0 \ubcf4\uc548 \ub9ac\uc2a4\ud06c\ub97c \ucd08\ub798\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\uc885\uc18d\uc131 \uad00\ub9ac\uc5d0 \uc788\uc5b4 \uc8fc\uc694\ud55c \ubb38\uc81c \uc911 \ud558\ub098\ub294 \uc758\uc874\ud558\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub098 \ud328\ud0a4\uc9c0\uc758 \ubcf4\uc548 \ucde8\uc57d\uc810\uc785\ub2c8\ub2e4. \ud574\ucee4\ub4e4\uc740 \uad11\ubc94\uc704\ud558\uac8c \uc0ac\uc6a9\ub418\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 \ucde8\uc57d\uc810\uc744 \uc545\uc6a9\ud558\uc5ec \uacf5\uaca9\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub294 \uac1c\ubc1c\uc790\ub4e4\uc774 \uc9c1\uc811 \uc791\uc131\ud558\uc9c0 \uc54a\uc740 \ucf54\ub4dc\uc5d0\uc11c\ub3c4 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc74c\uc744 \ub73b\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc885\uc18d\uc131\uc744 \uad00\ub9ac\ud558\ub294 \ub370 \uc788\uc5b4\uc11c \ubcf4\uc548 \uc810\uac80\uc774 \ud544\uc218\uc801\uc785\ub2c8\ub2e4.\ub610\ud55c, \uc885\uc18d\uc131 \uc5c5\ub370\uc774\ud2b8\uc640 \uad00\ub828\ub41c \ubb38\uc81c\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ucd5c\uc2e0 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud574 \ubcf4\uc548 \ucde8\uc57d\uc810\uc744 \ud574\uacb0\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc5c5\ub370\uc774\ud2b8\uac00 \ub2e4\ub978 \ucf54\ub4dc\uc640\uc758 \ud638\ud658\uc131 \ubb38\uc81c\ub97c \uc77c\uc73c\ud0ac \uc218 \uc788\uae30\uc5d0 \uc2e0\uc911\ud574\uc57c \ud569\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub294 \uc885\uc18d\uc131\uc744 \uc815\uae30\uc801\uc73c\ub85c \uc810\uac80\ud558\uace0, \ud544\uc694\uc2dc \ubcf4\uc548 \ud328\uce58\ub97c \uc801\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.\uacb0\ub860\uc801\uc73c\ub85c, \ud6a8\uacfc\uc801\uc778 \uc885\uc18d\uc131 \uad00\ub9ac\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc758 \uc548\uc815\uc131\uacfc \ubcf4\uc548\uc744 \ub192\uc774\ub294 \ub370 \uc911\uc694\ud55c \uc694\uc18c\ub85c, \uac1c\ubc1c\uc790\ub4e4\uc740 \uc774\ub97c \uc218\ub3d9\uc801\uc73c\ub85c \uad00\ub9ac\ud558\uba70 \ucd5c\uc2e0 \ubcf4\uc548 \ub3d9\ud5a5\uc5d0 \ub300\ud55c \uc778\uc2dd\uc744 \uac00\uc838\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>\uc11c\ube44\uc2a4\uc6cc\ucee4\uc640 \ubcf4\uc548<\/h1>\n<p>\uc11c\ube44\uc2a4\uc6cc\ucee4\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub124\ud2b8\uc6cc\ud06c\uc640 \uc0c1\ud638\uc791\uc6a9\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ud558\ub294 \uc2a4\ud06c\ub9bd\ud2b8\ub85c, \uc0ac\uc6a9\uc790 \ube0c\ub77c\uc6b0\uc800\uc758 \ubc31\uadf8\ub77c\uc6b4\ub4dc\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc11c\ube44\uc2a4\uc6cc\ucee4\ub294 \uc624\ud504\ub77c\uc778 \uc9c0\uc6d0, \ud478\uc2dc \uc54c\ub9bc, \ubc31\uadf8\ub77c\uc6b4\ub4dc \ub3d9\uae30\ud654 \ub4f1\uc758 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \uc6f9 \uc571\uc758 \uc131\ub2a5\uacfc \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc744 \ud06c\uac8c \ud5a5\uc0c1\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.\ud558\uc9c0\ub9cc \uc11c\ube44\uc2a4\uc6cc\ucee4\uc758 \ub3c4\uc785\uc73c\ub85c \uc778\ud574 \ubcf4\uc548 \ubb38\uc81c\ub3c4 \ub300\ub450\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc11c\ube44\uc2a4\uc6cc\ucee4\ub294 HTTP \ud504\ub85c\ud1a0\ucf5c\uc774 \uc544\ub2cc HTTPS\uc5d0\uc11c\ub9cc \uc791\ub3d9\ud558\uba70, \uc774\ub294 \ub370\uc774\ud130\ub97c \uc548\uc804\ud558\uac8c \uc804\uc1a1\ud558\uae30 \uc704\ud55c \uc911\uc694\ud55c \uc870\uce58\uc785\ub2c8\ub2e4. HTTPS\ub294 \uc911\uac04\uc790 \uacf5\uaca9(Man-in-the-Middle Attack)\uc73c\ub85c\ubd80\ud130 \ubcf4\ud638\ud560 \uc218 \uc788\ub294 \uc554\ud638\ud654\ub41c \uc5f0\uacb0\uc744 \uc81c\uacf5\ud558\ubbc0\ub85c, \uc11c\ube44\uc2a4\uc6cc\ucee4\ub97c \uc0ac\uc6a9\ud55c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ubcf4\uc548\uc801\uc73c\ub85c \ub354 \uc548\uc804\ud569\ub2c8\ub2e4.\uadf8\ub7fc\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 \uc11c\ube44\uc2a4\uc6cc\ucee4 \uad6c\ud604 \uc2dc \uba87 \uac00\uc9c0 \ubcf4\uc548 \uc704\ud5d8 \uc694\uc18c\uac00 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc11c\ube44\uc2a4\uc6cc\ucee4\uac00 \uce90\uc2dc\ub97c \ud65c\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \ubbfc\uac10\ud55c \uc815\ubcf4\uac00 \ub178\ucd9c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uac1c\ubc1c\uc790\ub294 \uc774\ub7ec\ud55c \ubbfc\uac10\ud55c \ub370\uc774\ud130\ub97c \uce90\uc2dc\ud558\uc9c0 \uc54a\ub3c4\ub85d \uc8fc\uc758\ud574\uc57c \ud558\uba70, \uc11c\ube44\uc2a4\uc6cc\ucee4\uc758 \uc0ac\ud56d \uc900\uc218\ub97c \ud1b5\ud574 \uad8c\ud55c\uc744 \ucd5c\uc18c\ud55c\uc73c\ub85c \uc694\uccad\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.\uacb0\ub860\uc801\uc73c\ub85c, \uc11c\ube44\uc2a4\uc6cc\ucee4\ub294 \ub2e4\uc591\ud55c \uae30\ub2a5\uc73c\ub85c \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc131\ub2a5\uc744 \uac1c\uc120\ud560 \uc218 \uc788\uc9c0\ub9cc, \ubcf4\uc548\uc5d0 \uc8fc\uc758\ub97c \uae30\uc6b8\uc774\uc9c0 \uc54a\uc73c\uba74 \uc704\ud5d8\uc774 \ub530\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \uac1c\ubc1c\uc790\ub294 \uc11c\ube44\uc2a4\uc6cc\ucee4\ub97c \uc548\uc804\ud558\uac8c \uad6c\ud604\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud55c \ucda9\ubd84\ud55c \uc9c0\uc2dd\uc744 \uac16\ucd94\uc5b4\uc57c \ud558\uba70, \uc0ac\uc6a9\uc790 \ub370\uc774\ud130 \ubcf4\ud638\ub97c \uc704\ud55c \ucd5c\uc120\uc758 \ubc29\ucc45\uc744 \ub9c8\ub828\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>CORS(\uad50\ucc28 \ucd9c\ucc98 \ub9ac\uc18c\uc2a4 \uacf5\uc720)\uc758 \uc704\ud5d8\uc131<\/h1>\n<p>CORS(\uad50\ucc28 \ucd9c\ucc98 \ub9ac\uc18c\uc2a4 \uacf5\uc720)\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub2e4\ub978 \ucd9c\ucc98\uc758 \ub9ac\uc18c\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub3c4\ub85d \ud5c8\uc6a9\ud558\ub294 \uba54\ucee4\ub2c8\uc998\uc785\ub2c8\ub2e4. \uadf8\ub7ec\ub098 CORS\ub294 \uba87 \uac00\uc9c0 \uc7a0\uc7ac\uc801\uc778 \uc704\ud5d8\uc131\uc744 \ub0b4\ud3ec\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uccab\uc9f8, \uc798\ubabb \uad6c\uc131\ub41c CORS \uc815\ucc45\uc740 \uc545\uc758\uc801\uc778 \uc0ac\uc774\ud2b8\uac00 \uc911\uc694\ud55c \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub294 \uacbd\ub85c\ub97c \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ubcf4\uc548\uc774 \ucde8\uc57d\ud55c API\ub97c \ud638\ucd9c\ud558\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub7ec\uc2dc\uc544 \ud574\ucee4\uc5d0\uac8c \ub178\ucd9c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub458\uc9f8, \uc0ac\uc6a9\uc790 \uc778\uc99d \uc815\ubcf4\ub97c \ucc98\ub9ac\ud560 \ub54c CORS\uac00 \ud65c\uc131\ud654\ub41c \uacbd\uc6b0, \uc774\uc6a9\uc790\uac00 \ub85c\uadf8\uc778\ud55c \uc0c1\ud0dc\uc5d0\uc11c \uc545\uc758\uc801\uc778 \uc0ac\uc774\ud2b8\uac00 \ud574\ub2f9 \uc815\ubcf4\ub97c \ube7c\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc14b\uc9f8, \ubaa8\ub4e0 \uc885\ub958\uc758 \uc6f9 \ube0c\ub77c\uc6b0\uc800\uac00 CORS \uc815\ucc45\uc744 \uc900\uc218\ud558\uc9c0 \uc54a\uac70\ub098 \uc545\uc6a9\ud560 \uc218 \uc788\uc5b4, \uacf5\uaca9\uc790\ub294 \uc774\ub97c \ud1b5\ud574 \ud06c\ub85c\uc2a4 \uc0ac\uc774\ud2b8 \uc694\uccad \uc704\uc870(CSRF) \uacf5\uaca9\uc744 \uac10\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c, \ubcf4\uc548 \ucde8\uc57d\uc810\uc744 \uc774\uc6a9\ud55c \uacf5\uaca9\uc740 \uc885\uc885 \ub2e8\uae30\uc801\uc778 \ud574\uacb0\ubc29\ubc95\uc774\ub098 \ud328\uce58\ub85c \ub9c9\uc744 \uc218 \uc5c6\uae30 \ub54c\ubb38\uc5d0, \uac1c\ubc1c\uc790\ub4e4\uc740 CORS \uc124\uc815 \uc2dc \uc8fc\uc758 \uae4a\uac8c \uad6c\uc131\ud574\uc57c \ud558\uba70, \ubcf4\uc548 \ubaa8\ub2c8\ud130\ub9c1\uc744 \uac15\ud654\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h1>\ub124\ud2b8\uc6cc\ud06c \ud328\ud0b7 \ub3c4\uccad\uacfc \ub370\uc774\ud130 \ubcf4\ud638<\/h1>\n<p>\ub124\ud2b8\uc6cc\ud06c \ud328\ud0b7 \ub3c4\uccad\uc740 \ud574\ucee4\ub098 \uc545\uc758\uc801\uc778 \uc0ac\uc6a9\uc790\uac00 \ub124\ud2b8\uc6cc\ud06c\ub97c \ud1b5\ud574 \uc804\uc1a1\ub418\ub294 \ub370\uc774\ud130\ub97c \ubb34\ub2e8\uc73c\ub85c \uac00\ub85c\ucc44\ub294 \ud589\uc704\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc774 \uacfc\uc815\uc5d0\uc11c \ud328\ud0b7\uc774\ub77c\ub294 \uc791\uc740 \ub370\uc774\ud130 \ubb36\uc74c\uc774 \uc778\ud130\ub137\uc744 \ud1b5\ud574 \uc774\ub3d9\ud558\ub294 \ub3d9\uc548 \uacf5\uaca9\uc790\ub294 \uc774\ub97c \uac10\uccad\ud558\uc5ec \ubbfc\uac10\ud55c \uc815\ubcf4\ub97c \ud0c8\ucde8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub3c4\uccad\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574 \ub370\uc774\ud130 \ubcf4\ud638 \uae30\uc220\uc774 \ud544\uc218\uc801\uc73c\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \ubc29\ubc95 \uc911 \ud558\ub098\ub294 \uc554\ud638\ud654\uc785\ub2c8\ub2e4. \uc554\ud638\ud654\ub294 \ub370\uc774\ud130\ub97c \ubcc0\ud615\ud558\uc5ec \uc778\uac00\ub41c \uc0ac\uc6a9\uc790\ub9cc \ub0b4\uc6a9\uc744 \uc77d\uc744 \uc218 \uc788\ub3c4\ub85d \ud558\ub294 \uae30\uc220\ub85c, SSL\/TLS \ud504\ub85c\ud1a0\ucf5c\uc744 \uc774\uc6a9\ud55c \uc6f9\uc0ac\uc774\ud2b8\uc758 HTTPS \uc5f0\uacb0\uc774 \uadf8 \uc608\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc554\ud638\ud654 \uae30\uc220\uc740 \ub370\uc774\ud130 \uc804\uc1a1 \uc2dc \ubb34\ub2e8 \uc811\uadfc\uc744 \ubc29\uc9c0\ud558\uace0 \uc815\ubcf4\uc758 \uae30\ubc00\uc131\uc744 \uc720\uc9c0\ud558\ub294 \ub370 \ud070 \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. \ub610\ud55c, \ubc29\ud654\ubcbd\uc774\ub098 \uce68\uc785 \ud0d0\uc9c0 \uc2dc\uc2a4\ud15c(IDS)\uacfc \uac19\uc740 \ubcf4\uc548 \uc7a5\ube44\ub97c \ud65c\uc6a9\ud558\uc5ec \uc758\uc2ec\uc2a4\ub7ec\uc6b4 \ud328\ud0b7\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud558\uace0 \ucc28\ub2e8\ud558\ub294 \ubc29\ubc95\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \uc778\uc99d\uc744 \uac15\ud654\ud558\uace0, \uc815\uae30\uc801\uc778 \ubcf4\uc548 \uc810\uac80\uacfc \ud328\uce58 \uad00\ub9ac\ub97c \ud1b5\ud574 \ub124\ud2b8\uc6cc\ud06c\uc758 \ubcf4\uc548\uc744 \uc720\uc9c0\ud558\ub294 \uac83\ub3c4 \uc911\uc694\ud569\ub2c8\ub2e4. \uacb0\uad6d, \ub124\ud2b8\uc6cc\ud06c \ud328\ud0b7 \ub3c4\uccad\uc744 \uc608\ubc29\ud558\uae30 \uc704\ud574\uc11c\ub294 \ub2e4\uc591\ud55c \ubcf4\uc548 \uae30\uc220\uc744 \uc801\uadf9\uc801\uc73c\ub85c \ud65c\uc6a9\ud558\uace0, \uc0ac\uc6a9\uc790\uc758 \ubcf4\uc548 \uc778\uc2dd\uc744 \uac1c\uc120\ud558\ub294 \uac83\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p>react \ucde8\uc57d\uc810<\/p>\n<h1>React \ucde8\uc57d\uc810\uc5d0 \ub300\ud55c \uc774\ud574<\/h1>\n<p>\ucd5c\uadfc React \ud504\ub808\uc784\uc6cc\ud06c\uc5d0\uc11c \ubc1c\uc0dd\ud55c \ucde8\uc57d\uc810\ub4e4\uc740 \uc8fc\ub85c XSS(\uad50\ucc28 \uc0ac\uc774\ud2b8 \uc2a4\ud06c\ub9bd\ud305) \uacf5\uaca9\uacfc \uad00\ub828\uc774 \uc788\uc2b5\ub2c8\ub2e4. React\ub294 \ucef4\ud3ec\ub10c\ud2b8 \uae30\ubc18\uc758 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c, \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \ucc98\ub9ac\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \uc801\uc808\ud55c \uac80\uc99d \ubc0f \ud544\ud130\ub9c1\uc744 \ud558\uc9c0 \uc54a\uc73c\uba74 \uc545\uc758\uc801\uc778 \ucf54\ub4dc\uac00 \uc2e4\ud589\ub420 \uc218 \uc788\ub294 \uc704\ud5d8\uc774 \uc874\uc7ac\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ucde8\uc57d\uc810\uc740 \ud2b9\ud788 \uac1c\ubc1c\uc790\uac00 dangerouslySetInnerHTML\uacfc \uac19\uc740 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \ub54c \uc8fc\uc758\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.   \ub610\ud55c, React\uc758 \uc0c1\ud0dc \uad00\ub9ac\uc640 \uad00\ub828\ub41c \ucde8\uc57d\uc810\ub3c4 \uc874\uc7ac\ud560 \uc218 \uc788\ub294\ub370, \uc774\ub294 \uc11c\ubc84 \uce21 \ub80c\ub354\ub9c1\uc744 \ud1b5\ud558\uc5ec \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 \ub370\uc774\ud130\ub97c \uc870\uc791\ud560 \uc218 \uc788\ub294 \uac00\ub2a5\uc131\uc744 \ub0b4\ud3ec\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \ud56d\uc0c1 \ucd5c\uc2e0 \ubc84\uc804\uc758 React\ub97c \uc720\uc9c0\ud558\uace0, \ubcf4\uc548 \ud328\uce58\ub97c \uc801\uc6a9\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4.   \uc774\uc640 \uac19\uc740 \ucde8\uc57d\uc810\uc744 \uc608\ubc29\ud558\uae30 \uc704\ud574\uc11c\ub294, \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \ucca0\uc800\ud788 \uac80\uc99d\ud558\uace0, \ud544\uc694\ud55c \uacbd\uc6b0 \uc81c3\uc758 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubcf4\uc548\uc744 \uac15\ud654\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \ub354\ubd88\uc5b4, \ubcf4\uc548 \uad50\uc721\uc744 \ud1b5\ud574 \uac1c\ubc1c\uc790\ub4e4\uc774 \uac01\uc885 \uacf5\uaca9 \uae30\ubc95\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ub192\uc774\ub294 \uac83\ub3c4 \ud544\uc218\uc801\uc785\ub2c8\ub2e4.<\/p>\n<h1>\ud0a4\uc6cc\ub4dc1:XSS, \ud0a4\uc6cc\ub4dc2:dangerouslySetInnerHTML<\/h1>\n<p>\ud0a4\uc6cc\ub4dc1 \uc124\uba85: XSS(\uad50\ucc28 \uc0ac\uc774\ud2b8 \uc2a4\ud06c\ub9bd\ud305)\ub294 \uacf5\uaca9\uc790\uac00 \uc545\uc131 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc6f9 \ud398\uc774\uc9c0\uc5d0 \uc0bd\uc785\ud558\uc5ec \uc0ac\uc6a9\uc790\uc758 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc2e4\ud589\uc2dc\ud0a4\ub294 \uacf5\uaca9 \uae30\ubc95\uc785\ub2c8\ub2e4. \uc774\ub294 \uc0ac\uc6a9\uc790 \uc138\uc158 \ud0c8\ucde8, \ub370\uc774\ud130 \ubcc0\uc870 \ub4f1 \uc5ec\ub7ec \uac00\uc9c0 \ubcf4\uc548 \ubb38\uc81c\ub97c \uc720\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p> \ud0a4\uc6cc\ub4dc2 \uc124\uba85: dangerouslySetInnerHTML\ub294 React\uc5d0\uc11c HTML \ubb38\uc790\uc5f4\uc744 \uadf8\ub300\ub85c \ub80c\ub354\ub9c1\ud560 \ub54c \uc0ac\uc6a9\ud558\ub294 \uc18d\uc131\uc785\ub2c8\ub2e4. \uc774 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \ub54c\ub294 \uc0ac\uc6a9\uc790\uac00 \uc785\ub825\ud55c \ub370\uc774\ud130\ub97c \uac80\uc99d\ud558\uc9c0 \uc54a\uc73c\uba74 XSS \uacf5\uaca9\uc758 \uc704\ud5d8\uc774 \uc788\uc73c\ubbc0\ub85c \uc8fc\uc758\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<h1>\ubcf4\uc548\uc758 \uacbd\uac01\uc2ec\uc744 \ub192\uc774\uc790<\/h1>\n<p>React\uc640 \uac19\uc740 \uc778\uae30 \uc788\ub294 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud560 \ub54c, \uac1c\ubc1c\uc790\ub294 \ubcf4\uc548\uc5d0 \ub300\ud55c \ucda9\ubd84\ud55c \uc778\uc2dd\uacfc \uc608\ubc29 \uc870\uce58\ub97c \uac00\uc838\uc57c \ud569\ub2c8\ub2e4. XSS\uc640 \uac19\uc740 \ucde8\uc57d\uc810\uc740 \ub2e8\uc21c\ud55c \ucf54\ub4dc \uc624\ub958\ub85c \uc778\ud574 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub7ec\ud55c \uacf5\uaca9\uc740 \uc0ac\uc6a9\uc790 \ub370\uc774\ud130\uc640 \uc2e0\ub8b0\uc131\uc744 \uc704\ud611\ud569\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub4e4 \uc2a4\uc2a4\ub85c\uac00 \uc548\uc804\ud55c \ucf54\ub529 \uad00\ud589\uc744 \uc9c0\ud0a4\uace0, \ucd5c\uc2e0 \ubcf4\uc548 \uc815\ubcf4\ub97c \uc9c0\uc18d\uc801\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud558\uc5ec \uc6b0\ub9ac \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc548\uc804\ud558\uac8c \ubcf4\ud638\ud574\uc57c \ud569\ub2c8\ub2e4. \uacb0\uad6d, \ubcf4\uc548\uc740 \uc120\ud0dd\uc774 \uc544\ub2cc \ud544\uc218\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\uac00 \ub9cc\ub4e0 \uc18c\ud504\ud2b8\uc6e8\uc5b4\uac00 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc2e0\ub8b0\ub97c \uc904 \uc218 \uc788\ub3c4\ub85d \ud56d\uc0c1 \uacbd\uac01\uc2ec\uc744 \uac00\uc9c0\uace0 \ucf54\ub4dc\uc5d0 \uc784\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ub9ac\uc561\ud2b8\uc5d0\uc11c\uc758 XSS(\uad50\ucc28 \uc2a4\ud06c\ub9bd\ud305) \ucde8\uc57d\uc810 \ub9ac\uc561\ud2b8\ub294 \uc0ac\uc6a9\uc790 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ucd95\ud558\uae30 \uc704\ud55c \uc778\uae30 \uc788\ub294 JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c, XSS(\uad50\ucc28 \uc2a4\ud06c\ub9bd\ud305) \uacf5\uaca9\uc5d0 \ub300\ud55c \ucde8\uc57d\uc131\uc744 \uac16\uace0 \uc788\uc2b5\ub2c8\ub2e4. XSS\ub780 \uacf5\uaca9\uc790\uac00 \uc545\uc758\uc801\uc778 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc6f9 \ud398\uc774\uc9c0\uc5d0 \uc0bd\uc785\ud558\uc5ec \uc0ac\uc6a9\uc790\uc758 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 \uacf5\uaca9 \uae30\ubc95\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uacf5\uaca9\uc740 \uc8fc\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \uacbd\uc6b0\uc5d0 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.1. **\uc0ac\uc6a9\uc790 \uc785\ub825 \ucc98\ub9ac**: \ub9ac\uc561\ud2b8 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c\ub294 \uc0ac\uc6a9\uc790\ub85c\ubd80\ud130 \uc785\ub825\ubc1b\uc740 \ub370\uc774\ud130\ub97c \uc9c1\uc811 DOM\uc5d0 \uc0bd\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub54c \uc0ac\uc6a9\uc790\uac00 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts\/5115"}],"collection":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5115"}],"version-history":[{"count":0,"href":"https:\/\/dohokin.com\/index.php?rest_route=\/wp\/v2\/posts\/5115\/revisions"}],"wp:attachment":[{"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dohokin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}