Plack::Request::WithEncoding ã¨ããã¢ã¸ã¥ã¼ã«ããªãªã¼ã¹ãã¾ããï¼
https://metacpan.org/module/Plack::Request::WithEncoding
https://github.com/moznion/Plack-Request-WithEncoding
ããã¯ä½
ãã®ã¢ã¸ã¥ã¼ã«ã¯ Plack::Request ã®ãµãã¯ã©ã¹ã§ï¼
Request Parameter ã«å¯¾ã㦠decode å¦çãè¡ã£ã¦ããã便å©ãªãã¤ã§ãï¼
大ä½ã®åä½ã¨ãã¦ã¯ PODï¼ç¹ã« SYNOPSIS ã«æ¸ãã¦ããéãã§ãï¼
çµç·¯
ãã®æã® decode å¦ç㯠WAF ãä½ãæãªããã«è·äººãå¿ãè¾¼ãã¦ä¸å¯§ã«è¨è¿°ããã¨æããã§ããï¼
ããã®åº¦ã«ãã¡ãã¡åçºæã¨ãã³ããããã®ã¯ã ããããï½ãã¿ãããªè©±ã
YAPC ã®æã« HUB ã§ @tokuhirom ããã @songmu ããã¨ãã¦ãã¦ï¼
ã»ãããã¾ãæè§ãªã®ã§æ¸ãã¾ããã£ã¦æãã§æ¸ããã®ããã¡ãã«ãªãã¾ãï¼
ãã¨ï¼Request ã® decode ããããªã«ãã£ã¦ãããã®ã§ï¼ç psgi ã§ã¢ããªãæ¸ãæãç°¡åã«ãªãã®ã§è¯ãæãã§ããï¼
(ãªããã®ã¢ã¸ã¥ã¼ã«ãæ¸ãã«ããã£ã¦ã¯ï¼@songmu ãããã¯ããã¨ããæèè
ã®çæ§ã«å¤§å¤ãä¸è©±ã«ãªãã¾ããï¼)
èå°è£
ãã ãã®å®è£
æ³ï¼ã¤ã¾ã Plack::Request ãç¶æ¿ãã¦å®è£
ããæ¹æ³ã¯è³å¦ä¸¡è«ãã£ã¦ï¼
ã©ã¡ããã¨è¨ãã¨å¦ã®æ¹ãå¤ãæãã§ (ãªããã¨è¨ã㨠Plack::Request ã®å®è£
ã夿´ãããå ´åã«åä½ããããããªãã®ã§ï¼
ä¾ãã° `param()` ã使ã£ãæ°ããã¡ã½ãããçããæã¨ã)ï¼
ç¶æ¿ã§ã¯ãªã delegate ã«ãã£ã¦å®è£
ããæ¹ãè¯ãã®ã§ã¯ç¡ããã¨ããæè¦ãåãã¾ãããï¼
Plack::Request ã®ååãå ãã¦ãã以ä¸ãPlack::Request ã¨ã®çµ±ä¸çãªã¤ã³ã¿ã¼ãã§ã¼ã¹ãæä¾ããã¹ãã§ããã¨ããæèã¨ï¼
delegate ã«ããå®è£
ããã¨ãã¦ã Plack::Request ã«å¤æ´ãçããå ´åã¯ããã«è¿½éããå¿
è¦ãããã®ã§ï¼
ã¡ã³ãã®ã³ã¹ãã¯ããã¾ã§å¤ãããªãããªï½ã¨ããææ§ãªè¦ç©ããã«ãã£ã¦ï¼ä»åã®ãããªç¶æ¿ã«ããå®è£
ãæ¡ç¨ããã«è³ãã¾ããï¼
ã¾ãä»ã® WAF ã大ä½ç¶æ¿ãã¦å®è£
ãã¦ãããï¼
ãªã®ã§ã¡ã³ãã®éã«ã¯é å¼µã£ã¦ Plack::Request ã«è¿½éãã¦ããããæãã§ãã
Enjoy!