Ã¥¼Ò°³
¼¼»ó¿¡¼ °¡Àå ½Ç¿ëÀûÀÎ API ÇØÅ· °¡À̵åºÏ API »ç¿ë·®ÀÌ Æø¹ßÀûÀ¸·Î Áõ°¡ÇÏ¸ç °ø°ÝÀÚµéÀÇ »õ·Î¿î Ç¥ÀûÀÌ µÇ°í ÀÖ´Ù. ÀÌ Ã¥Àº REST/±×·¡ÇÁQL À¥ API¿Í ÀϹÝÀûÀÎ API Ãë¾àÁ¡ µî À¥ API º¸¾È ±âÃʺÎÅÍ ½ÃÀÛÇØ, °¡»ó ¸Ó½Å°ú Ä®¸® ¸®´ª½º·Î °ø°Ý ¹× ´ë»ó ½Ã½ºÅÛÀ» ±¸ÃàÇÏ°í, ¹öÇÁ ½ºÀ§Æ®¿Í Æ÷½ºÆ®¸Ç µî ¿©·¯ ÇØÅ· µµ±¸¸¦ È°¿ëÇØ ¾Ë·ÁÁø ¸ðµç À¯ÇüÀÇ API °ø°ÝÀ» ½Ç½ÀÇغ»´Ù. API º¸¾ÈÀÇ Á߿伺ÀÌ ³ô¾ÆÁö´Â °¡¿îµ¥, API ÇØÅ·ÀÇ À̷аú ½ÇÁ¦¸¦ °¡Àå Æ÷°ýÀûÀ¸·Î Á¤¸®ÇÑ Ã¥.
ÀúÀÚ¼Ò°³
¸ð½º ¾Ö´ý½º(Moss Adams)ÀÇ »çÀ̹ö º¸¾È °ü¸®ÀڷΠħÅõ Å×½ºÆ® ¼ºñ½º¸¦ Ã¥ÀÓÁö°í ÀÖ´Ù. IT ºÐ¾ß¿¡¼ 10³â ÀÌ»ó ÀÏÇϸç Ç×°ø ¿ìÁÖ, ³ó¾÷, ¿¡³ÊÁö, ÇÉÅ×Å©, Á¤ºÎ ¼ºñ½º, ÀÇ·á µî ´Ù¾çÇÑ ¿µ¿ª¿¡¼ »çÀ̹ö º¸¾È °æÇèÀ» ½×¾Ò´Ù. Ķ¸®Æ÷´Ï¾Æ ÁÖ¸³´ëÇб³ »õÅ©¶ó¸àÅä¿¡¼ ¿µ¹®Çаú öÇÐ Çлç ÇÐÀ§¸¦ ¹Þ¾Ò°í OSCP, CCISO, CEH, CISA, CISM, CRISC, CGEIT ÀÚ°ÝÁõÀ» °®°í ÀÖ´Ù.
¸ñÂ÷
ÁöÀºÀÌ¡¤°¨¼öÀÚ¡¤¿Å±äÀÌ ¼Ò°³ xiii¿Å±äÀÌ ¸Ó¸®¸» xivº£Å¸¸®´õ Èıâ xvÃßõ»ç xviiÃßõ ¼¹®(´í ¹Ù¶ó¿À³ª) xix°¨»çÀÇ ±Û xxiiÀÌ Ã¥¿¡ ´ëÇÏ¿© xxivPART I À¥ API º¸¾ÈÀÌ ÀÛµ¿ÇÏ´Â ¹æ½ÄCHAPTER 0 º¸¾È Å×½ºÆ® Áغñ 30.1 ±ÇÇÑ ¹Þ±â 40.2 API Å×½ºÆ®ÀÇ À§Çù ¸ðµ¨¸µ 40.3 Å×½ºÆ®ÇØ¾ß ÇÒ API ±â´É 7__0.3.1 API ÀÎÁõ Å×½ºÆ® 7__0.3.2 À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¹æȺ® 7__0.3.3 ¸ð¹ÙÀÏ ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ® 8__0.3.4 API ¹®¼ °¨»ç 8__0.3.5 ¼Óµµ Á¦ÇÑ Å×½ºÆ® 90.4 Á¦ÇÑ°ú Á¦¿Ü 10__0.4.1 Ŭ¶ó¿ìµå API º¸¾È Å×½ºÆ® 11__0.4.2 DoS Å×½ºÆ® 120.5 º¸°í¿Í °³¼± Å×½ºÆ® 120.6 ¹ö±× Çö»ó±Ý ¹üÀ§¿¡ °üÇÑ ³ëÆ® 13¿ä¾à 14CHAPTER 1 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÛµ¿ÇÏ´Â ¹æ¹ý 171.1 À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ±âÃÊ 17__1.1.1 URL 18__1.1.2 HTTP ¿äû 19__1.1.3 HTTP ÀÀ´ä 20__1.1.4 HTTP »óÅ ÄÚµå 22__1.1.5 HTTP ¸Þ¼µå 23__1.1.6 HTTPÀÇ »óÅ 241.2 À¥ ¼¹ö µ¥ÀÌÅͺ£À̽º 26__1.2.1 SQL 26__1.2.2 NoSQL 281.3 APIÀÇ ¿ªÇÒ 29¿ä¾à 29CHAPTER 2 À¥ APIÀÇ ±¸Á¶ 312.1 À¥ API°¡ ÀÛµ¿ÇÏ´Â ¹æ½Ä 312.2 Ç¥ÁØ À¥ API ŸÀÔ 34__2.2.1 RESTful API 35__2.2.2 ±×·¡ÇÁQL 392.3 REST API ¸í¼¼ 432.4 API µ¥ÀÌÅÍ ±³È¯ Çü½Ä 44__2.4.1 JSON 44__2.4.2 XML 47__2.4.3 YAML 482.5 API ÀÎÁõ 49__2.5.1 ±âº» ÀÎÁõ 49__2.5.2 API Å° 50__2.5.3 JSON À¥ ÅäÅ« 52__2.5.4 HMAC 53__2.5.5 OAuth 2.0 54__2.5.6 ÀÎÁõ ¾øÀ½ 562.6 API ½ÇÀü: Æ®À§ÅÍ API »ìÆ캸±â 56¿ä¾à 59CHAPTER 3 ÀϹÝÀûÀÎ API Ãë¾àÁ¡ 613.1 Á¤º¸ ´©Ãâ 623.2 BOLA 633.3 »ç¿ëÀÚ ÀÎÁõ °áÇÔ 653.4 µ¥ÀÌÅÍ °ú´Ù ³ëÃâ 663.5 ¸®¼Ò½º ºÎÁ·°ú ¼Óµµ Á¦ÇÑ 673.6 BFLA 683.7 ´ë·® ÇÒ´ç 703.8 º¸¾È ¼³Á¤ ¿À·ù 713.9 ÁÖÀÔ 743.10 ºÎÀûÀýÇÑ ÀÚ¿ø °ü¸® 763.11 ºñÁî´Ï½º ·ÎÁ÷ Ãë¾àÁ¡ 77¿ä¾à 78PART II API Å×½ºÆ® ½ÇÇè½Ç ±¸ÃàCHAPTER 4 API ÇØÅ· ½Ã½ºÅÛ 814.1 Ä®¸® ¸®´ª½º 814.2 °³¹ßÀÚ µµ±¸·Î À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ºÐ¼® 824.3 ¹öÇÁ ½ºÀ§Æ®·Î ¿äû ĸó¿Í ¼öÁ¤ 85__4.3.1 Æø½ÃÇÁ·Ï½Ã ¼³Á¤ 86__4.3.2 ¹öÇÁ ½ºÀ§Æ® ÀÎÁõ¼ Ãß°¡ 87__4.3.3 ¹öÇÁ ½ºÀ§Æ® ¸ðµâ 88__4.3.4 Æ®·¡ÇÈ °¡·Îä±â 90__4.3.5 ħÀÔÀÚ¿¡¼ ¿äû º¯°æ 924.4 Æ÷½ºÆ®¸Ç¿¡¼ API ¿äû »ý¼º 96__4.4.1 ¿äû »ý¼º±â 97__4.4.2 ȯ°æ 100__4.4.3 Ä÷º¼Ç 102__4.4.4 Ä÷º¼Ç ½ÇÇà±â 106__4.4.5 ÄÚµå Á¶°¢ 106__4.4.6 Å×½ºÆ® ÆгΠ1074.5 ¹öÇÁ ½ºÀ§Æ®¿Í Æ÷½ºÆ®¸ÇÀÇ Á¶ÇÕ 1084.6 º¸Ãæ µµ±¸ 110__4.6.1 OWASP ¾î¸Å½º·Î »çÀü Á¶»ç 110__4.6.2 Ä«ÀÌÆ®·¯³Ê·Î API ¿£µåÆ÷ÀÎÆ® ¹ß°ß 111__4.6.3 ´ÐÅä·Î Ãë¾àÁ¡ °Ë»ö 113__4.6.4 OWASP ZAPÀ¸·Î Ãë¾àÁ¡ °Ë»ö 114__4.6.5 WÆÛÁî¿Í ÆÛ¡ 115__4.6.6 ¾Æ¸£ÁØÀ¸·Î HTTP ¸Å°³º¯¼ö ¹ß°ß 117¿ä¾à 118½ÇÇè½Ç #1: REST API¿¡¼ »ç¿ëÀÚ °èÁ¤ ¿°Å 118CHAPTER 5 Ãë¾àÇÑ API ´ë»ó ¼³Á¤ 1235.1 ¸®´ª½º È£½ºÆ® »ý¼º 1245.2 µµÄ¿¿Í µµÄ¿ ÄÄÆ÷Áî ¼³Ä¡ 1245.3 Ãë¾àÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ¼³Ä¡ 125__5.3.1 crAPI 125__5.3.2 ÇȽà 126__5.3.3 OWASP ÁÖ½º ¼ó 127__5.3.4 DVGA 1285.4 ±âŸ Ãë¾àÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç Ãß°¡ 1295.5 Æ®¶óÀÌÇÙ¹Ì¿Í ÇÙ´õ¹Ú½º¿¡¼ÀÇ API ÇØÅ· 130¿ä¾à 131½ÇÇè½Ç #2: Ãë¾àÇÑ API ¹ß°ß 132PART III API °ø°ÝCHAPTER 6 ¹ß°ß 1396.1 ¼öµ¿Àû »çÀü Á¶»ç 140__6.1.1 ¼öµ¿Àû »çÀü Á¶»ç ÀýÂ÷ 140__6.1.2 ±¸±Û ÇØÅ· 141__6.1.3 ÇÁ·Î±×·¡¸ÓºíÀ¥ÀÇ API °Ë»ö µð·ºÅ͸® 143__6.1.4 ¼î´Ü 146__6.1.5 OWASP ¾î¸Å½º 147__6.1.6 ±êÇãºê¿¡ ³ëÃâµÈ Á¤º¸ 1506.2 ´Éµ¿Àû »çÀü Á¶»ç 153__6.2.1 ´Éµ¿Àû »çÀü Á¶»ç ÀýÂ÷ 154__6.2.2 NmapÀ» ÅëÇÑ ±âº» ½ºÄµ 156__6.2.3 Robots.txt¿¡¼ ¼û°ÜÁø °æ·Î ¹ß°ß 157__6.2.4 Å©·Ò °³¹ßÀÚ µµ±¸·Î ¹Î°¨ÇÑ Á¤º¸ ¹ß°ß 157__6.2.5 ¹öÇÁ ½ºÀ§Æ®·Î API °Ë»ç 162__6.2.6 OWASP ZAP°ú URI Å©·Ñ¸µ 162__6.2.7 °í¹ö½ºÅ͸¦ »ç¿ëÇÑ URI ¹«Â÷º° ´ëÀÔ 165__6.2.8 Ä«ÀÌÆ®·¯³Ê·Î API ÄÜÅÙÃ÷ °Ë»ö 166¿ä¾à 168½ÇÇè½Ç #3: ºí·¢ ¹Ú½º Å×½ºÆ®¸¦ À§ÇÑ ´Éµ¿Àû »çÀü Á¶»ç 169CHAPTER 7 ¿£µåÆ÷ÀÎÆ® ºÐ¼® 1757.1 ¿äû Á¤º¸ ã±â 176__7.1.1 ¹®¼¿¡¼ Á¤º¸ ã±â 176__7.1.2 API ¸í¼¼ ÀÓÆ÷Æ® 180__7.1.3 API ¸®¹ö½º ¿£Áö´Ï¾î¸µ 1827.2 Æ÷½ºÆ®¸Ç¿¡ API ÀÎÁõ ¿ä°Ç Ãß°¡ 1857.3 ±â´É ºÐ¼® 187__7.3.1 Àǵµ¿¡ ¸Â´Â »ç¿ëÀÎÁö Å×½ºÆ® 188__7.3.2 ±ÇÇÑÀÌ ÇÊ¿äÇÑ ÀÛ¾÷ ¼öÇà 189__7.3.3 API ÀÀ´ä ºÐ¼® 1917.4 Á¤º¸ ´©Ãâ 1917.5 º¸¾È ¼³Á¤ °áÇÔ 192__7.5.1 ÀÚ¼¼ÇÑ ¿¡·¯ ¸Þ½ÃÁö 192__7.5.2 ºó¾àÇÑ Àü¼Û ¾ÏÈ£È 193__7.5.3 ¹®Á¦°¡ ÀÖ´Â ¼³Á¤ 1937.6 µ¥ÀÌÅÍ °ú´Ù ³ëÃâ 1947.7 ºñÁî´Ï½º ·ÎÁ÷ °áÇÔ 195¿ä¾à 196½ÇÇè½Ç #4: crAPI Ä÷º¼Ç ±¸Ãà°ú µ¥ÀÌÅÍ °ú´Ù ³ëÃâ ¹ß°ß 196CHAPTER 8 ÀÎÁõ °ø°Ý 2018.1 °íÀüÀû ÀÎÁõ °ø°Ý 202__8.1.1 ºñ¹Ð¹øÈ£ ¹«Â÷º° ´ëÀÔ °ø°Ý 202__8.1.2 ºñ¹Ð¹øÈ£ ¸®¼Â°ú ´ÙÁß ÀÎÁõ ¹«Â÷º° ´ëÀÔ °ø°Ý 203__8.1.3 ºñ¹Ð¹øÈ£ ½ºÇÁ·¹ÀÌ 205__8.1.4 ¹«Â÷º° ´ëÀÔ °ø°Ý¿¡ base64 ÀÎÁõ Æ÷ÇÔ 2088.2 ÅäÅ« À§Á¶ 209__8.2.1 ¼öµ¿ ºÐ¼® 210__8.2.2 ½Ç½Ã°£ ĸó ºÐ¼® 212__8.2.3 ¿¹Ãø °¡´ÉÇÑ ÅäÅ« ¹«Â÷º° ´ëÀÔ 2138.3 JWT ¾Ç¿ë 216__8.3.1 JWT ºÐ¼® 216__8.3.2 none °ø°Ý 219__8.3.3 ¾Ë°í¸®Áò ½ºÀ§Ä¡ °ø°Ý 219__8.3.4 JWT Å©·¢ °ø°Ý 221¿ä¾à 221½ÇÇè½Ç #5: crAPI JWT ¼¸í Å©·¢ 222CHAPTER 9 ÆÛ¡ 2259.1 È¿°úÀûÀÎ ÆÛ¡ 225__9.1.1 ÆÛ¡ ÆäÀÌ·Îµå ¼±Åà 227__9.1.2 ÀÌ»ó °¨Áö 2299.2 ³ÐÀº ÆÛ¡°ú ±íÀº ÆÛ¡ 231__9.2.1 Æ÷½ºÆ®¸Ç°ú ³ÐÀº ÆÛ¡ 232__9.2.2 ¹öÇÁ ½ºÀ§Æ®¿Í ±íÀº ÆÛ¡ 235__9.2.3 WÆÛÁî¿Í ±íÀº ÆÛ¡ 2379.3 WÆÛÁî·Î ¿äû ¸Þ¼µå Å×½ºÆ® 2419.4 ÀÔ·Â À¯È¿¼º °Ë»ç¸¦ ¿ìȸÇÏ´Â ¡®´õ ±íÀº¡¯ ÆÛ¡ 2429.5 ÆÛ¡°ú µð·ºÅ͸® ¼øȸ 244¿ä¾à 244½ÇÇè½Ç #6: ºÎÀûÀýÇÑ ÀÚ¿ø °ü¸® Ãë¾àÁ¡ ÆÛ¡ 245CHAPTER 10 ±ÇÇÑ °ø°Ý 24910.1 BOLA ã±â 249__10.1.1 ID Ž»ö 250__10.1.2 A-B Å×½ºÆ® 252__10.1.3 ºÎä³Î BOLA 25210.2 BFLA ã±â 253__10.2.1 A-B-A Å×½ºÆ® 254__10.2.2 Æ÷½ºÆ®¸Ç¿¡¼ BFLA Å×½ºÆ® 25410.3 ±ÇÇÑ ºÎ¿© ÇØÅ· ÆÁ 257__10.3.1 Æ÷½ºÆ®¸ÇÀÇ Ä÷º¼Ç º¯¼ö 257__10.3.2 ¹öÇÁ ½ºÀ§Æ®ÀÇ Ã£¾Æ ¹Ù²Ù±â 257¿ä¾à 258½ÇÇè½Ç #7: ´Ù¸¥ »ç¿ëÀÚÀÇ ÀÚµ¿Â÷ À§Ä¡ ¹ß°ß 258CHAPTER 11 ´ë·® ÇÒ´ç 26511.1 ´ë·® ÇÒ´ç ´ë»ó ¹ß°ß 265__11.1.1 °èÁ¤ µî·Ï 266__11.1.2 ±ÇÇÑ ¾ø´Â Á¢±Ù 26611.2 ´ë·® ÇÒ´ç º¯¼ö ¹ß°ß 267__11.2.1 ¹®¼¿¡¼ º¯¼ö ¹ß°ß 267__11.2.2 ¾Ë ¼ö ¾ø´Â º¯¼ö ÆÛ¡ 268__11.2.3 ¸Í¸ñÀû ´ë·® ÇÒ´ç °ø°Ý 26911.3 ¾Æ¸£ÁØ, ¹öÇÁ ½ºÀ§Æ® ħÀÔÀÚ·Î ´ë·® ÇÒ´ç °ø°Ý ÀÚµ¿È 27011.4 BFLA¿Í ´ë·® ÇÒ´ç Á¶ÇÕ 271¿ä¾à 272½ÇÇè½Ç #8: ¿Â¶óÀÎ »óÁ¡ÀÇ ¾ÆÀÌÅÛ °¡°Ý º¯°æ 273CHAPTER 12 ÁÖÀÔ 27912.1 ÁÖÀÔ Ãë¾àÁ¡ ¹ß°ß 28012.2 »çÀÌÆ® °£ ½ºÅ©¸³ÆÃ(XSS) 28112.3 API °£ ½ºÅ©¸³ÆÃ(XAS) 28212.4 SQL ÁÖÀÔ 284__12.4.1 ¸ÞŸ ¹®ÀÚ Á÷Á¢ Àü¼Û 285__12.4.2 SQL¸Ê 28612.5 NoSQL ÁÖÀÔ 28812.6 ¿î¿µ üÁ¦ ¸í·É¾î ÁÖÀÔ 290¿ä¾à 292½ÇÇè½Ç #9: NoSQL ÁÖÀÔÀ» »ç¿ëÇÑ ÄíÆù À§Á¶ 293PART IV ½ÇÀü API ÇØÅ·CHAPTER 13 ¿ìȸ ±â¼ú°ú ¼Óµµ Á¦ÇÑ Å×½ºÆ® 29913.1 API º¸¾È ÄÁÆ®·Ñ ¿ìȸ 300__13.1.1 º¸¾È ÄÁÆ®·ÑÀÇ ÀÛµ¿ ¹æ½Ä 300__13.1.2 API º¸¾È ÄÁÆ®·Ñ ŽÁö 301__13.1.3 ¹ö³Ê °èÁ¤ »ç¿ë 302__13.1.4 ¿ìȸ ±â¼ú 303__13.1.5 ¹öÇÁ ½ºÀ§Æ®·Î ¿ìȸ ÀÚµ¿È 305__13.1.6 WÆÛÁî·Î ¿ìȸ ÀÚµ¿È 30713.2 ¼Óµµ Á¦ÇÑ Å×½ºÆ® 309__13.2.1 ´À½¼ÇÑ ¼Óµµ Á¦ÇÑ¿¡ ´ëÇÑ ³ëÆ® 310__13.2.2 °æ·Î ¿ìȸ 312__13.2.3 Ãâó Çì´õ À§Á¶ 313__13.2.4 ¹öÇÁ ½ºÀ§Æ®¿¡¼ IP ÁÖ¼Ò ¼øȯ 314¿ä¾à 318CHAPTER 14 ±×·¡ÇÁQL °ø°Ý 31914.1 ±×·¡ÇÁQL ¿äû°ú IDE 32014.2 ´Éµ¿Àû »çÀü Á¶»ç 321__14.2.1 ½ºÄ³´× 321__14.2.2 ºê¶ó¿ìÀú¿¡¼ DVGA »ç¿ë 323__14.2.3 °³¹ßÀÚ µµ±¸ »ç¿ë 32314.3 ±×·¡ÇÁQL API ¸®¹ö½º ¿£Áö´Ï¾î¸µ 325__14.3.1 ±×·¡ÇÁQL ¿£µåÆ÷ÀÎÆ®¿¡ µð·ºÅ͸® ¹«Â÷º° ´ëÀÔ 325__14.3.2 ÄíÅ° º¯Á¶¸¦ ÅëÇÑ ±×·¡ÇÇŬ IDE È°¼ºÈ 328__14.3.3 ±×·¡ÇÁQL ¿äû ¸®¹ö½º ¿£Áö´Ï¾î¸µ 330__14.3.4 ½ºÅ°¸¶ È®ÀÎÀ» ÅëÇÑ ±×·¡ÇÁQL Ä÷º¼Ç ¸®¹ö½º ¿£Áö´Ï¾î¸µ 33214.4 ±×·¡ÇÁQL API ºÐ¼® 333__14.4.1 ±×·¡ÇÇŬ ¹®¼ Ž»ö±â¸¦ ÅëÇÑ ¿äû ÀÛ¼º 333__14.4.2 ¹öÇÁ ½ºÀ§Æ® ¾Öµå¿Â InQL 33514.5 ¸í·É¾î ÁÖÀÔÀ» À§ÇÑ ÆÛ¡ 338¿ä¾à 344CHAPTER 15 µ¥ÀÌÅÍ Ä§ÇØ¿Í ¹ö±× Çö»ó±Ý 34515.1 ħÇØ 346__15.1.1 Æç·ÎÅæ 346__15.1.2 USPS Informed Visibility API 348__15.1.3 T-¸ð¹ÙÀÏ API ħÇØ 34915.2 Çö»ó±Ý 351__15.2.1 API Å°ÀÇ °¡°Ý 352__15.2.2 ºñ°ø°³ API ±ÇÇÑ ºÎ¿© ¹®Á¦ 353__15.2.3 ½ºÅ¸¹÷½º: Àü·Ê ¾ø´Â ħÇØ 355__15.2.4 ÀνºÅ¸±×·¥ ±×·¡ÇÁQL BOLA 357¿ä¾à 359¸¶Ä¡¸ç 360ºÎ·Ï A API ÇØÅ· üũ¸®½ºÆ® 362ºÎ·Ï B Ãß°¡ ÀÚ·á 364ã¾Æº¸±â 368