ä¸æ£ãªæååãã©ãã§ãã§ãã¯ãã¹ãã
大å£ããã®æ¸ãããï¼
ä¸æ£ãªæåã¨ã³ã³ã¼ãã£ã³ã°ãå©ç¨ããæ»æã¯ãæåã¨ã³ã³ã¼ãã£ã³ã°ãå³æ ¼ã«åãæ±ããæåã¨ã³ã³ã¼ãã£ã³ã°ãããªãã¼ã·ã§ã³ããã°ç¡ããªãã¾ãããããæ ãã¨ãã·ã¹ãã ã®ã©ãã§åé¡ãçºçãããäºæ³ã§ããªããªãã¾ããã¤ã¾ããããå æ¸ã«æåã¨ã³ã³ã¼ãã£ã³ã°ãåãæ±ãã¨å®å ¨ãªã·ã¹ãã ã¯ä½ããªãã®ã§ãã
何故かあたり前にならない文字エンコーディングバリデーション – yohgaki's blog
ã¨ããè¦åã«ã¯åæãªã®ã§ããã対çã®ä¸çªæã«ãå ¨ã¦ã®å ¥åæååã®æåã¨ã³ã³ã¼ãã£ã³ã°ãããªãã¼ã·ã§ã³ããããæãããã¦ããã®ã«éåæãè¦ãã¾ããå ¥åæã®ããªãã¼ã·ã§ã³ã¯ãããã¾ã§ä¿éºçãªå¯¾çã§ãããªãã®ã§ã¯ãªãã§ããããã
ãã®æèã«ããã¦ãXSSãèµ·ããã®ã¯ãä¸æ£ãªãã¤ãåãåé·ãªUTF-8表ç¾ãHTMLä¸ã«åºåãããããã§ãããããããªãã°ãä¸æ£ãªæååãHTMLã«åºåããããã«ãªã£ã段éã§ä¾å¤ãåãã®ãæ ¹æ¬çãªè§£æ±ºçã ã¨æãã¾ãã
SQLã¤ã³ã¸ã§ã¯ã·ã§ã³ã«ã¤ãã¦ãåæ§ã§ãä¸æ£ãªæååãå«ãSQLãå®è¡ããããã«ãªã£ã段éã§ä¾å¤ãåãã®ãæ ¹æ¬çãªè§£æ±ºçã ã¨æãã¾ããç¹ã«SQLã®å ´åãå®è¡ã¨ã©ã¼ã¨ãªããã¨ãæ³å®ãããããã§ãã»ãã¥ãªãã£ã¨ã¯ç¡é¢ä¿ã«ææãããã¹ãã§ãããã
é«æ¨æµ©å ããã¯ã「サニタイズ言うなキャンペーン」とは何かãã¨ããè¨äºã§ï¼
å ã ãHTMLãåºåããã¨ãã¯ããã®åºåå ¨ä½ã«å¯¾ãã¦ã<ãã>ãã&ãã®ã¨ã¹ã±ã¼ãå¦çã®æ¤è¨ãè¦æ±ããã¦ããã®ã§ãã£ã¦ãCGIå ¥åã«ä¾åãã¦ãããã©ããã¯ç¡é¢ä¿ã§ããã
ã¨æ¸ããã¦ãã¾ããæåã¨ã³ã³ã¼ãã£ã³ã°ã«ã¤ãã¦ãåããã¨ããããã¯ãã§ããä¸æ£ãªæååãå¿ ãCGIå ¥åããããããããã¨ã¯éããªãããã§ãã
ã¨ããããã§ãåããé«æ¨ããã®ã要約版:「サニタイズ言うなキャンペーン」とはãã«æ¸ããã¦ããã¨ããï¼
å ¥å段éã§ã¯ãªããåºå段éãã§ããåºåãã¨ããã®ã¯ï¼åºåã¨ããããï¼ãåé¡ãèµ·ããå ´æã
ã§ã®å¯¾çãè¬ããã®ããå°ãªãã¨ãæ°è¦éçºã®å ´é¢ã§ã¯å½ç¶ãªã®ã§ã¯ãªãããã¨ç§ã¯èãã¦ãã¾ãã
追è¨ï¼2009-09-11ï¼
SQLã¤ã³ã¸ã§ã¯ã·ã§ã³ã®ä¸æ£ãªæååã£ã¦ä½ï¼ååºåå ã«ä½µãã¦ãã©ã¼ãããããäºã¨å ¥åã®ãã§ãã¯ãæ··åããã¦ãããã¨ãè¦å®ããæåã³ã¼ãã¨ãã¦ä¸æ£ãªãã¤ãåãå ¥åãããå ´åã«ã¯å ¥åæã«ã¨ã©ã¼ã«ããã¹ã
はてなブックマーク - 不正な文字列をどこでチェックすべきか - 岩本隆史の日記帳
ã³ã¡ã³ããããã¨ããããã¾ãã
SQLã¤ã³ã¸ã§ã¯ã·ã§ã³ã«ã¤ãã¦ã¯ã大å£ããã®å è¨äºã§è§¦ãããã¦ãããããæ·±ãèããªãã«è¨ãã¾ããããããã大å£ããã¯ã[Think IT] 第2回:PHPのSQLインジェクションを実体験 (1/3)ãã¨ããè¨äºã«æ¸ãããå 容ãæ³å®ããã¦ããã®ã ã¨æãã¾ãã
ç§ã¯ãXSSãSQLã¤ã³ã¸ã§ã¯ã·ã§ã³ãäºé²ããç®çã§ã®ãå ¥åã®ãã§ãã¯ãã¯ä¸è¦ã¨èãã¦ãã¾ãããååºåå ã«ä½µãããã©ã¼ãããããå®ç§ã«å®è¡ããã°é²ããã¯ãã ããã§ãï¼ãã©ã¼ãããã§ããªãä¸æ£ãªãã¤ãåãããã°ä¾å¤ãåãï¼ã
ã¨ã¯ãããããããç§ããè¦å®ããæåã³ã¼ãã¨ãã¦ä¸æ£ãªãã¤ãåãå ¥åãããå ´åã«ã¯å ¥åæã«ã¨ã©ã¼ã«ãããããããã¾ãããããããã¯XSSãSQLã¤ã³ã¸ã§ã¯ã·ã§ã³ãäºé²ããããã§ã¯ããã¾ããããçµå±ã¨ã©ã¼ãè¿ãã®ãªãã°æ©ãã«è¿ããããã¨ããã³ã¹ãã®è¦³ç¹ããã§ãã
追è¨ï¼2009-09-12ï¼
- ãå ¨ã¦ã®å ¥åæååã®æåã¨ã³ã³ã¼ãã£ã³ã°ãããªãã¼ã·ã§ã³ãããã¨ãã対çæ¡ãèªã¿ãç§ã¯ãã¹ã¯ãªããã®å é ã§ãHTTPãªã¯ã¨ã¹ãã«å«ã¾ããæååã®ããªãã¼ã·ã§ã³ãè¡ããã¨ãããããªå®è£ ãæ³èµ·ãã¾ããããããªãã®ãä¿éºç対çã¨ãã¶ã®ãããããããã»ã©ã§ããã¨ãã°PHPãªã file_get_contents() ã®æ»ãå¤ã«ã ã£ã¦ä¸æ£ãªæååãå«ã¾ããå¯è½æ§ãããããã§ããHTTPãªã¯ã¨ã¹ã以å¤ã®ãå ¥åæååãã«ã¯ã©ã®ãããªãã®ãããã®ãããããæ確ã«ãã¦ãããªãã¨ãã¶ã«ã®ãããªå®è£ ã§æ ¢å¿ãã¦ãã¾ãéçºè ãéç£ãããªãã¨ãéãã¾ããã
- ç§ã¯ã当記事へのブックマークコメントã§ä¿éºç対çãæ¨å¥¨ããã¦ããã®ãä¸æè°ã«æãã¦ãã¾ãããä¿éºç対çã¯ä¿éºçã§ãããªãã®ã ãããå°ãªãã¨ãæ°è¦éçºã®å ´é¢ã§ã¯æ ¹æ¬ç解決çãæ¨å¥¨ãã¹ãã ãã¨ããã®ãå½è¨äºã®ä¸»æ¨ãªããã§ãããªãæ ¹æ¬ç解決çï¼æååã®åºæãåãããåé¡ãèµ·ããå ´æãã§ããªãã¼ã·ã§ã³ããï¼ã§ã¯ãããªãã®ãããããæ確ã«ãã¦ããã ããªãã¨ãç´å¾ã§ããã¯ããããã¾ããã徳丸ããã¯ãä¸æ£ãªæåã¨ã³ã³ã¼ãã£ã³ã°ã®å½±é¿ã¯ããã°ã©ã å ¨ä½ã«åã¶ãã¨æ¸ããã¦ãã¦ãæ ¹æ¬ç解決çã«ã¤ãã¦å®è£ ãå°é£ã ã¨ã¿ãªããã¦ããããã«èªã¿åãã¾ãããã ãæ¬å½ã«å°é£ãªã®ã§ããããï¼ããåé¡ãèµ·ããå ´æããã¨ã«ã©ãããªãã¢ã¸ã¥ã¼ã«ãªããä½ãã°ãã話ã ã¨ç§ã«ã¯æããã®ã§ããã
追è¨ï¼2009-09-13ï¼
Wassrã§ã®ããã¨ããéãã¦ãnihenããã®ãèãã¯ç解ã§ãã¾ãããç§ãªãã«ã¾ã¨ããã¨ï¼
- å ¥åæã®ããªãã¼ã·ã§ã³ã¯ä¿éºç対çã§ã¯ãªããæ ¹æ¬ç解決çã§ãã
- å ¥åãã¤ãåï¼HTTPãªã¯ã¨ã¹ãã®ã¿ã¨ã¯éããªãï¼ãUTF-8æååã¨ãã¦æ±ãã¯ãããã¨ãã«ãã§ãã¯ãã¹ã
ã¨ãªãã¾ããããã¯ããã§çãéã£ã¦ãã¦ç´å¾ã§ãã¾ãã
ããã§ãç§ã¯ãã§ãã¯æ¼ããæ°ã«ãªãããã§ããããåé¡ãèµ·ããå ´æãã§ã®ãã§ãã¯ã ã£ã¦æ¼ãããã®ã§ãã£ã¦ã¿ãã°ãçµå±ã¯ã¢ããªè£½ä½è ã®æ³¨æå次第ã¨ãããã¨ã«ãªãã®ããããã¾ããããããã¯ããã¹ã¦ã®ãå ¥åãã«ã¤ãã¦ä¸æ£ãã¤ãåãæ³å®ãããã¹ããæ¸ããã¨ããæéãæ¡ç¨ãã¹ããªã®ããã
追è¨ï¼2009-09-14ï¼
徳丸さんにトラックバックをいただきましたããã¨ã¯çæ§ã®ãå¤æã«ãã¾ãããã¾ãã
ç§èªèº«ã¯çµå±ãå®æ¨æ¿ããããã¨ã¯ããã¾ããã§ããããåé¡ãèµ·ããå ´æãã®ãç´åãããã¨ãã° preg_match() ã®ç´åã§ãmb_check_encoding() ããªãã¨ä¸å®ã§ä¸å®ã§â¦ããpreg_match() ã«æ¸¡ãããå¤æ°ã¯å ¥å£ã§ããªãã¼ã·ã§ã³ããã¦ãã¯ãã ãããã§ãã¯ããªãã¦OKããªã©ã¨è ¹ã¯æ¬ãã¾ãããé¢åã ããã£ã¦ï¼ãã ããRubyã使ã£ã¦ããã§ãã
追è¨ï¼2009-09-15ï¼
ãã¤ããã¦ãã¿ã¾ãããXSSã«ã¤ãã¦ããã¨ãç§ã¯ä¸è¨ã®ãããªè«çã§èãã¦ãã¾ãã
- æªæã®ããHTTPãªã¯ã¨ã¹ãã«ããXSSã¯ãHTTPãªã¯ã¨ã¹ããããªãã¼ã·ã§ã³ããã°é²ãã
- ãããXSSã¯ãæªæã®ããHTTPãªã¯ã¨ã¹ãã«ãã£ã¦ã®ã¿èµ·ããã¨ã¯éããªãï¼ãµã¼ãã¤ã³ã¹ãã¼ã«åã®ãã£ã¼ããªã¼ãã¼ãæªæã®ãããã£ã¼ãã«æ»æãããä¾ããæ³åãã ããï¼
- ãã£ã¼ãã®ä¾ãé²ãããã«ã¯ãå¤é¨ãµã¤ãã®ãã£ã¼ãåç §æã«ããªãã¼ã·ã§ã³ï¼ãããã¯ãµãã¿ã¤ãºï¼ããå¿ è¦ããã
- æ·è¡ããã°ãæååã¨ãã¦æ±ãããå ¥åãã¤ãåã¯ããã¹ã¦ããªãã¼ã·ã§ã³ï¼ãããã¯ãµãã¿ã¤ãºï¼ããå¿ è¦ããã
- ãã¹ã¦ã®å ¥åãã¤ãåãããªãã¼ã·ã§ã³ããããã©ãããä½ãæ ä¿ãã¦ãããã®ãï¼ï¼ç¹ã«åçåè¨èªã«ããã¦ï¼
- ãã®æ ä¿ããªããªãã°ãHTMLæ§ç¯æã«ããªãã¼ã·ã§ã³ããããããªãã®ã§ã¯ãªããï¼
5ã®çåã解決ã§ãããªããå ¥å£ã§ã®ããªãã¼ã·ã§ã³ã«è¡·å¿ããç´å¾ã§ããã®ã§ããâ¦ã