Àå°í - ratelemit. ¼øÀ§ ¹× ¿ä¾à
- °Ô½ÃÀÚ À¥»çÀÌÆ®:
- http://mozilla.com
Àå°í - ratelemit. ű×
Àå°í - ratelemit. ¼³¸í
Django¿¡ ´ëÇÑ Ä³½Ã ±â¹Ý ¿ä±Ý Á¦ÇÑ Django-ratelimitÀº ºä¸¦ Æò°¡ÇÏ´Â µ¥ÄÚ·¹ÀÌÅ͸¦ Á¦°øÇÏ´Â Django ¾ÛÀÔ´Ï´Ù. Á¦ÇÑÀº ¿äûÀÇ IP ÁÖ¼Ò ¶Ç´Â Çʵ带 ±â¹ÝÀ¸·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù - GET ¶Ç´Â POST VANDION.IF ¼Óµµ Á¦ÇÑÀÌ ²÷¾î Áö°Å³ª, 403 °³ÀÇ ±ÝÁö°¡ ¼Û½Å µÉ ¼ö Àְųª, ¿äûÀ» Á¦ÇÑµÈ ¼Ó¼ºÀ¸·Î ÁÖ¼®À» ´Þ¸®¸é¼ Django RateLimitfrom rateLimit.sups rateLimitÀ» Æû¿¡ Ãß°¡ÇÏ´Â °Í°ú °°Àº ´Ù¸¥ ÇൿÀ» ÃëÇÏ´Â °Í. @RateLimit Decorator´Â ITALICS (Italics)ÀÇ Çö¸íÇÑ ±âº»°ªÀ¸·Î ¿©·¯ °¡Áö ¼±ÅÃÀû Àμö¸¦ Á¦°øÇÕ´Ï´Ù .IP : IP¸¦ ±â¹ÝÀ¸·ÎÇÔÀ¸·Î½á ¿ä±Ý Á¦ÇÑ ¿©ºÎ. TrueBlock : ÁÖ¼® ´ë½Å ¿äûÀ» Â÷´ÜÇÒÁö ¿©ºÎ. Falsemethod : ¾î´À http ¸Þ¼Òµå¸¦ ºñÀ² Çѵµ·ÎÇÕ´Ï´Ù. ¹®ÀÚ¿ ¶Ç´Â ¸ñ·Ï ÀÏ ¼ö ÀÖ½À´Ï´Ù. Allfield : ºñÀ² Çѵµ¿¡ »ç¿ëÇÒ HTTP Çʵå. ¹®ÀÚ¿ ¶Ç´Â ¸ñ·Ï ÀÏ ¼ö ÀÖ½À´Ï´Ù. nonate : ´ÜÀ§ ½Ã°£´ç ¿äû ¼ö. 5 / mexamples : @RateLimit () DEF MyView (¿äû) : µ¿ÀÏÇÑ IP°¡ 5 °³ ÀÌ»óÀÇ ¿äû / ºÐÀ̵Ǹé # true°¡µË´Ï´Ù. was_limited = getAttr (¿äû, 'Á¦ÇÑ', false) @ rateLimit (block = true) def myView (¿äû) : # µ¿ÀÏÇÑ IP°¡ ¸¸µé¾î Á³´Â °æ¿ì 5 reqs / minÀÌ httpresponse () @ ratelemitÀ» ¹ÝȯÇÕ´Ï´Ù (field = 'username') DEF ·Î±×ÀÎ (¿äû) : # 5 ȸ / ºÐ°ú µ¿ÀÏÇÑ »ç¿ëÀÚ À̸§ ¶Ç´Â IP°¡ »ç¿ëµÇ´Â °æ¿ì, ÀÌ°ÍÀº »ç½ÇÀÔ´Ï´Ù. #`username '°ªÀº # ¿äû ¹æ¹ýÀ¸·Î °áÁ¤µÈ GET ¶Ç´Â POST¿¡¼ Á¦°øµË´Ï´Ù. was_limited = getAttr (¿äû, 'Á¦ÇÑ', false) httpresponse () @ rateLimit (method = 'post) def ·Î±×ÀÎ (¿äû) : # Àü¿ë ºñÀ² Á¦ÇÑ ¸¸ °Ô½Ã¹°¿¡¸¸ Àû¿ëÇÕ´Ï´Ù. httpresponseredirect () @ rateLimit (field = ) DEF ·Î±×ÀÎ (¿äû) : # ¿©·¯ ÇÊµå °ªÀ» »ç¿ëÇϽʽÿÀ. ¹Ýȯ HTTPResponse () @ rateLimit (rate = '4 / h') DEF ´À¸®°Ô (¿äû) : # 4 reqs / ½Ã°£ Çã¿ë. httpresponse () ¿ä±¸ »çÇ×À» ¹ÝȯÇÕ´Ï´Ù. ¡¤ ÆÄÀ̽㠡¤ Àå°í
Àå°í - ratelemit. °ü·Ã ¼ÒÇÁÆ®¿þ¾î