誰ããç¬èªã®ãŽãããªãæã¡ã誰ããäžè¬çã«Apacheãå®è¡ãããããã¢ã«ãŠã³ãèšå®ãšphp5-fpmèšå®ãçç¥ããŸãã ãã ããããã§ã¯ãWordPressã®äžè¬çãªéšåã«ã€ããŠèª¬æããŸãã ç§ãäœãããããäœãèµ·ãã£ãã®ãããããŠãã®çç±ã«ã€ããŠæžããŸãã
ãã©ã«ããŒ
- wp-admin
- wp-content
- wp-includes
PHPãã¡ã€ã«
- wp-activate.php
- wp-blog-header.php
- wp-comments-post.php
- wp-config.php
- wp-config-sample.php
- wp-cron.php
- wp-links-opml.php
- wp-load.php
- wp-login.php
- wp-mail.php
- wp-postpass.php ïŒè©³çŽ°ã¯äžèš ïŒ
- wp-settings.php
- wp-signup.php
- wp-trackback.php
- xmlrpc.php
- xmlrpc.txt ïŒããã«ã€ããŠã¯ä»¥äžã§è©³ãã説æããŸã ïŒ
ããã¯Wordpress 4.0ã®å žåçãªã¹ã€ãŒãã§ãã
äœãå¿ èŠã§ããïŒ phpãã¡ã€ã«ãšç®¡çããã«ãžã®ã¢ã¯ã»ã¹ãå¶éããéçãã¬ã³ããªã³ã°ããxmlrpcãéããå¿ èŠããããŸãã
管çããã«ãšphpãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãå¶éããŸã
ç§ã®ããŒãžã§ã³ã®wordpressã§ã¯ããŠãŒã¶ãŒã®ã³ã¡ã³ããä¿åãããxmlrpcã䜿çšããŸããã ã³ã¡ã³ããžã®ã¢ã¯ã»ã¹ãå®å šã«æäŸããæ¹æ³ãããã³nginxãšwordpressã®ãã®ä»ã®ç·æ¥ã®åé¡ã«ã€ããŠã¯ããã®èšäºã®ç¬¬2éšã§èª¬æããŸãããã¡ãããããããã°äœæããŸãã Apacheããªãããã.htaccessãã¡ã€ã«ã¯åœ¹ã«ç«ã¡ãŸããã
ãããã£ãŠãäžèšã®å éšåçºè ãéããŸãã
å Žæã* ^ /ïŒ\ãhtaccess | xmlrpc \ .phpïŒ$ { 404ãè¿ããŸãã }
ãã®åŸãxmlrpc.phpããã³.htaccessãªã¯ãšã¹ãã䜿çšãããšã404ãšã©ãŒãçºçããŸãã 403ãš200ã®äž¡æ¹ã®ãããããçºè¡ããããšã¯å¯èœã§ãããããã¯ãã§ã«å¥œã¿ã®åé¡ã§ãã
次ã«ãæ®ãã®ãã®ãžã®ã¢ã¯ã»ã¹ãå¶éããŸãã å¶éã«ãããç§ã¯æ¿èªãªã¯ãšã¹ããã€ãŸãauth_basicãæå³ããŸãã
å Žæã* ^ / wp-admin /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { auth_basicããã¹ã¯ãŒãã§ä¿è·ã; auth_basic_user_file users / somefile; root / path / to / site / root; ïŒãã®ä»ã®ãªãã·ã§ã³ }
*ãã®ã³ãŒãã¯ã/ wp-admin /ããéçãèŠæ±ãããšãã«nginxã«æ¿èªãèŠæ±ãããnginxã¯éçãçºè¡ããŸãã
次ã«ããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãå¶éããŸãã
å Žæã*ïŒ/ wp-admin / | / wp-cron \ .php | / wp-config \ .php | / wp-config-sample \ .php | / wp-mail \ .php | / wp-settings \ã php | / wp-signup \ .php | / wp-trackback \ .php | / wp-activate \ .php | / wp-links-opml \ .php | / wp-load \ .php | / wp-comments-post \ .php | / wp-blog-header \ .php | / wp-login \ .php | / wp-includes /.*ïŒ\ãphp | / wp-content /.*ïŒ\ãphpïŒ{ auth_basicããã¹ã¯ãŒãã§ä¿è·ã; auth_basic_user_file users / somefile; root / path / to / site / root; ïŒãã®ä»ã®ãªãã·ã§ã³ }
/wp-includes/.*?\.phpã®ãããªãšã³ããªã«ã¯ãwp-includes以äžã®ãã¹ãŠã®phpãã¡ã€ã«ãå«ãŸããŸãã
å®äºããŸãããã¢ã¯ã»ã¹ãã¯ããŒãºããŸããã ããã§ãå ¬éããŒãžã§ã³ã«å¿ èŠãªèŠçŽ ãéžæçã«å«ããŸããããã¯æ¬æã§ããã«è©³ãã説æããŸãã
å®å šãªWordpressã§å®å šãªæçš¿ãæå¹ã«ãã
wp-login.phpãæ¿èªããŠéããåŸãå®å šãªæçš¿ãæžã蟌ã¿ããªã³ã¯ãšãã¹ã¯ãŒããïŒæçš¿ããïŒé©åãªãŠãŒã¶ãŒã«ããããããããšã«ããããŠãŒã¶ãŒ...ã¯æªç¥ã®ãŠã£ã³ããŠãæãããŸãã ãã¹ã¯ãŒãã¯ãGETãã©ã¡ãŒã¿ãŒã䜿çšããpostãªã¯ãšã¹ããšããŠwp-login.phpãã¡ã€ã«ã«æž¡ãããã®ã§ã Action = postpass ã
nginxã¯å€ãã®å¶éã課ããŠããŸãïŒ
- nginxããã®å Žæã§ã¯ããªã¯ãšã¹ããã©ã¡ãŒã¿ãèšè¿°ã§ããŸããã
- auth_basicã¯ifåŒã§ã¯äœ¿çšã§ããŸããã
- æ¿èªã«æåããå Žåã«1ãæž¡ãããconfigå ã®å€æ°ãæã€ã²ãŒã ã¯ãå€æ°ãçŸåšã®ãªã¯ãšã¹ãã§ã®ã¿æå¹ã§ãããããäœããããããŸããã
ã©ãããïŒ
解決çããããŸãïŒ åããã©ã«ããŒã«wp-login.phpãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸãã ãã®wp-postpass.phpããããŸãã ã·ã³ããªãã¯ãªã³ã¯ãå¿ èŠãªã®ã§ãwordpressãæŽæ°ãããšã wp-login.phpãæŽæ°ããããªã³ã¯ã«ãã£ãŠãã¡ã€ã«ãæŽæ°ãããŸã...ãããLinuxã倧奜ããªçç±ã§ãã
次ã«ãnginx configã«æ¬¡ã®ããã«èšè¿°ããŸãã
å Žæã*ïŒ/wp-postpass\.phpïŒ{ ifïŒ$ argsã "^ action = postpass $"ïŒ{ set $ wppostpass 1; } ifïŒ$ wppostpassã0ïŒ{ 403ãè¿ããŸãã } ïŒãã®ä»ã®ãªãã·ã§ã³ }
ãã®å Žåã / wp-postpass.phpïŒaction = postpassãèŠæ±ãããšãwppostpasså€æ°ã®å€ã¯1ã«ãªããå Žæã¯æåŸãŸã§æ©èœããŸãã ãã¢ãªã¯ãšã¹ãwp-postpass.phpãŸãã¯ä»ã®ãã©ã¡ãŒã¿ãŒïŒããã§ãããããã«ã$è¡ã®å é ãã^ãŸã§ãã§ãã¯ãããŸãïŒã®å Žåã403ãšã©ãŒãçºçããŸããããã¯ãã¢ã¯ã»ã¹ãéããããããšãæå³ããŸãã
ãã®ãããªã¹ããŒã ãæ©èœããããã«ã¯ã ngx_http_substitutions_filter_moduleãå¿ èŠã§ã ã æ§æã«ç»é²ããå¿ èŠããããŸã
subs_filter 'https://example.com/wp-login.php\?action=postpass' 'https://example.com/wp-postpass.php?action=postpass' gi;
次ã«ãnginxã¯wp-login.phpïŒAction-postpassãªã³ã¯ãwp-postpass.phpïŒAction-postpassã«èªåçã«å€æŽãããŠãŒã¶ãŒã¯ãã¹ã¯ãŒãã§ãã°ã€ã³ããŠä¿è·ãããã¬ã³ãŒãã衚瀺ã§ããŸãã
å¥ã®ãµãŒããŒã§éçããŒã¿ãåãåºããCDNãæ¥ç¶ããŸã
ããŒãäžãjsãcssãããã³å°ããªgifã¯åœ¹å²ãæãããŸãããã¡ã¢ãªãããå Žåãnginxã¯ãã£ãã·ã¥ã«ããããä¿åããååãªã¡ã¢ãªãããå Žåããã¹ãŠã®ãµã€ãçµ±èšãtmpfsã»ã¯ã·ã§ã³ã«è»¢éã§ããããã§ãïŒ3.8 GBèªã¿åãããã³æžã蟌ã¿745k iops ' sïŒã
ãã ãã1ã€ã®ãµãŒããŒã®å Žåã誰ãããã¡ã€ã«ãæ©ãååŸããåŸã§èª°ããååŸããŸããå€ãã®ã¯ã©ã€ã¢ã³ããããå Žåã1MBã®ãã¡ã€ã«1000åãé ä¿¡ãããšããrateãå ¥åããªããšãã£ãã«ã¯ããã¿ãŸãã
ãããã®å Žåããã£ãã·ã³ã°CDNãããã€ããŒãçºæãããŸããã ããšãã°ã cloudflareã§ãã
ä»äºã®åçã¯ã圌ãã®åçã«é¡èã«ç€ºãããŠããŸãïŒ
CDNã䜿çšããªãå Žåããã¹ãŠã®èŠæ±ã¯æçµãµã€ãã«éãããCDNèŠæ±ããã¯ãããã€ããŒã®CDNã«éãããŸããããã¯äžéãªã³ã¯ãšããŠæ©èœããŸãã ãã®å Žåã1000人ã®ãŠãŒã¶ãŒã1 MBã®ãã¡ã€ã«ãèŠæ±ãããšããã®ãã¡ã€ã«ã¯CDNãããã€ããŒã«ãã£ãŠãã£ãã·ã¥ã«å¯ŸããŠ1åèŠæ±ããããã®åŸ1000人ã®ãŠãŒã¶ãŒãé åžãããŸãã Ãla google docsã¹ã¿ã€ã«ã®DDoSãªãã·ã§ã³ã§ã big_photo.jpg ïŒ Ver = 1 ã次ã«big_photo.jpg ïŒ Ver = 2ãªã©ãèŠæ±ããå Žå äžçšåºŠã®ãã£ãã·ã¥ã¢ãŒããéžæããïŒcloudflareã«ããïŒããã£ãã·ã¥ã®ã¿ãéçã§ããå Žåã¯æ©èœããŸããããã®åŸã big_photo.jpg ã big_photo.jpgïŒver = 1ãŸãã¯big_photo.jpgïŒver = 123ãèŠæ±ãããšããµãŒããŒããbig_photo.jpgãèŠæ±ãããŸããã¯ã©ã€ã¢ã³ããåŒæ°ä»ãã®ãã¡ã€ã«ãèŠæ±ããå Žåã§ãã圌ãšåœŒã ãã§ãïŒãããã¯åã«ç¡èŠãããŸãïŒã ããã«ãããåºæ¬çã«ddosãããä¿è·ããå¿ èŠãããcdnãããã€ããŒã«ããddosåé¡ã解決ãããŸãã
ç§ã¯ããŸãç»ããŸããã§ããããããã©ã«ãã®çµ±èšã¯æ¬¡ã®å Žæã«ä¿åãããŠããããšãããããŸããã
- / wp-content /ã¢ããããŒã/
- / wp-content /ããŒã/
- / wp-content /ãã©ã°ã€ã³/
- / wp-includes / js /
- / wp-includes / css /
- / wp-includes /蚌ææž/
- / wp-includes /ãã©ã³ã/
- / wp-includes / images /
ãããã£ãŠããããã®ããã«å Žæã«æ°ããã«ãŒã«ãäœæãã ngxãšngx_http_substitutions_filter_moduleã䜿çšããŸã ã
ãã®ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸãããæžãæãã¢ãžã¥ãŒã«ã®ã¿ã§å®è¡ã§ããŸãããããã ãã§äŸ¿å©ã§ããããããéããŠããã¯ãšã³ãããã®åºåãæ¹åã§ããŸãã
æ§æã«ä»¥äžãè¿œå ããŸãã
subs_filter_types text / html; subs_filter_types text / xml;
htmlããã³xmlããã¥ã¡ã³ãã®åºåããã£ã«ã¿ãªã³ã°ããŸãã
次ã«ïŒ
subs_filter 'https://example.com/wp-content/uploads/' 'https://static.example.com/uploads/' gi; subs_filter 'https://example.com/wp-content/themes/' 'https://static.example.com/themes/' gi; subs_filter 'https://example.com/wp-content/plugins/' 'https://static.example.com/plugins/' gi; subs_filter 'https://example.com/wp-includes/js/' 'https://static.example.com/js/' gi; subs_filter 'https://example.com/wp-includes/css/' 'https://static.example.com/css/' gi; subs_filter 'https://example.com/wp-includes/certificates/' 'https://static.example.com/certificates/' gi; subs_filter 'https://example.com/wp-includes/fonts/' 'https://static.example.com/fonts/' gi; subs_filter 'https://example.com/wp-includes/images/' 'https://static.example.com/images/' gi;
ãããã£ãŠãhtmlããã³xmlã®ãªã³ã¯ã¯æžãæããããŸãã ããã§ãå ã®ãªã³ã¯ãç¥ã£ãŠãããšã³ããŠãŒã¶ãŒããµãŒããŒãæªçšããã«ãCDNã«èªå°ãããããšã確èªããããšãã§ããŸãã
å Žæã* ^ / wp-content / themes /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-content /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-content / plugins /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-content /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-content / uploads /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-content /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-includes / js /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-includes /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-includes / css /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-includes /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-includes / certificates /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-includes /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-includes / fonts /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-includes /(.*)$ https://static.example.com/$1 permanent; } å Žæã* ^ / wp-includes / images /ïŒã*ïŒïŒ<ïŒïŒ\ãphpïŒïŒïŒ$ { æžãæã^ / wp-includes /(.*)$ https://static.example.com/$1 permanent; }
ãã®çµæãphpãã¡ã€ã«ããªã¯ãšã¹ãããŠãäœãèµ·ãããŸããã ãããŠãéçïŒéçãªWPã®å Žåã¯phpã§ã¯ãªããã¹ãŠïŒãèŠæ±ãããšããŠãŒã¶ãŒã¯éçãµãŒããŒã«ãªãã€ã¬ã¯ããããŸãã
éçãµãŒããŒã®nginxãããã¡ã€ã«ã®ã»ããã¢ããã«ã€ããŠã¯ã 以äžã§èª¬æããŸã ã
次ã«ã䜿çšããcloudflareïŒãŸãã¯ãã®ä»ã®ïŒcdnãããã€ããŒã§ã¢ã«ãŠã³ããäœæããDNSãç»é²ããŠãwordpressãåäœããexample.com ããã£ãã·ã¥ããã« static.example.comãã¡ã€ã³ã®ãã£ãã·ã¥ãæå¹ã«ããŸãã
éçãµãŒããŒã®æ§æ
ãªã¿ãŒã³ãéçãµãŒããŒã«è»¢éãããããæ£ããæ§æããå¿ èŠããããŸãã
127.0.0.1ãèš±å¯ããŸãã IPv4ãµãŒããŒãèš±å¯ããŸãã IPv6ãµãŒããŒãèš±å¯ããŸãã CDNãµãŒããŒã®IP /ãµãããããèš±å¯ããŸãã ... CDNãµãŒããŒã®IP /ãµãããããèš±å¯ããŸãã ãã¹ãŠãæåŠããŸãã
ããŒã«ã«ãã¹ããžã®ã¢ã¯ã»ã¹ãå€éšIPïŒããšãã°ãã©ã®ã¹ã¯ãªããïŒãããµãŒããŒèªäœãžã®ã¢ã¯ã»ã¹ãããã³ãããã€ããŒã®CDNãµãŒããŒãžã®ã¢ã¯ã»ã¹ãèš±å¯ããå¿ èŠããããŸãã ããšãã°ãCloudFlareãµããããã¯ãã®ãªã³ã¯ã«ãããŸãã ãããŠããã¡ãããä»ã®ãã¹ãŠã®ãŠãŒã¶ãŒãžã®ã¢ã¯ã»ã¹ããããã¯ããŸãã CDNãçªç¶ãã©ãã£ãã¯ãåç·ã«é 眮ããããšã«ããå Žåã¯ã...空ããã£ãã«ãæ®ããŸãã
ãŸãããããŒãµãŒããŒãéçãµãŒããŒå šäœã®ã«ãŒããšããŠäœæããå¿ èŠããããŸãã
ã«ãŒã/ãã¹/ãž/ãµã€ã/ãããŒ;
ãã±ãŒã·ã§ã³/ãŸãã¯= /ã«ããéçãµãŒããŒã«å°éããããã§æå®ããããã±ãŒã·ã§ã³ãšäžèŽããªããªã¯ãšã¹ãã¯ãåããããŒãã£ã¬ã¯ããªã«éãããŸãã ãã®ãã£ã¬ã¯ããªã¯ãµãŒããŒ{}å ã«æžã蟌ãŸããŸã ã
ããã«ãã±ãŒã·ã§ã³ã°ãªãŒãã£ã³ã°ïŒ
å Žæ= / { default_type text / html; 200ãc'est staticãc'est simpleïŒPããè¿ããŸãã }
ããã¯ãã«ãŒãããªã¯ãšã¹ããããŠãŒã¶ãŒã«è¡šç€ºãããããã¹ãã§ãã äœã§ãæžãããšãã§ããŸããinsideã䜿çšãããšãã®äž»ãªãã®ã¯" escape quotes as \"ã§ãã
次ã«ãstaticsã§locationãç»é²ããå¿ èŠããããŸãã
locationã* ^ / uploads /.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-content; èªåã€ã³ããã¯ã¹ãªã; index index.html; } å Žæã* ^ /ããŒã/.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-content; èªåã€ã³ããã¯ã¹ãªã; index index.html; } å Žæã* ^ / plugins /.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-content; èªåã€ã³ããã¯ã¹ãªã; index index.html; } å Žæã* ^ / js /.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-includes; èªåã€ã³ããã¯ã¹ãªã; index index.html; } å Žæã* ^ / css /.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-includes; èªåã€ã³ããã¯ã¹ãªã; index index.html; } å Žæã* ^ /蚌ææž/.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-includes; èªåã€ã³ããã¯ã¹ãªã; index index.html; } locationã* ^ / fonts /.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-includes; èªåã€ã³ããã¯ã¹ãªã; index index.html; } å Žæã* ^ / images /.*ïŒïŒ<ïŒïŒ\ãphpïŒïŒ$ { root / path / to / site / root / wp-includes; èªåã€ã³ããã¯ã¹ãªã; index index.html; }
static.example.com/images/pic.pngããªã¯ãšã¹ããããšããµãŒããŒã¯/ wp-includes / images / pic.pngãã£ã¬ã¯ããªãããã¡ã€ã«ãè¿ããŸããã static.example.com / images / pic.phpã®å Žæããªã¯ãšã¹ããããšãã¯ãªãã¯ããŠçµæãšããŠãŠãŒã¶ãŒã圌ãã¯ãããŒ/ç»å/ pic.phpãããã¡ã€ã«ãæäŸããŸãããããã¯ããã«ãªãããããšã©ãŒ404ã§ãã
ããã§ãé床ãäžããã«ã¯ã¬ãŒããè¿œå ããå¿ èŠããããŸãã
limit_rate_after 16m; limit_rate 2m;
16ã¡ã¬ãã€ãã®åŸãé床ã¯ã¹ããªãŒã ããšã«2 MB /ç§ã«äœäžããŸã ã ããã¯ã巚倧ãªãã¡ã€ã«ããã£ãã·ã¥ãããšãã«CDNããã£ãã«å šäœãè©°ãŸãããªãããã«ããããã§ãã
cloudflareã®å ŽåãïŒãã®è³æã®å·çæç¹ã§ã®ïŒæ倧ãã¡ã€ã«ãµã€ãºã¯512ã¡ã¬ãã€ãã§ããã ç¡ææéãã©ã³ã§ãµããŒããããŠãã圢åŒã¯æ¬¡ã®ãšããã§ããcssãjsãjpgãjpegãgifãicoãpngãbmpãpictãcsvãdocãpdf ãplsãpptãtifãtiffãepsãejsãswfãmidiãmidãttfãeotãwoffãotfãsvgãsvgzãwebpãdocxãxlsxãxlsãpptxãpsãclassãjarã
ãªã¯ãšã¹ãã®ãã£ã«ã¿ãªã³ã°
äžåºŠã«2ã€ã®ã±ãŒã¹ããããŸãã
- ã¡ãã£ã¢ãã¡ã€ã«ãããŠã³ããŒããããšã example.com /ïŒattachment_id = XXã®ãããªãªã³ã¯ãååŸããŸããXXã¯ãã®ã¡ãã£ã¢ãã¡ã€ã«ã®ããŒãžIDã§ãã ããã«å¿ããŠã1ã2ã3ã®é ã«äžŠã¹æ¿ããŸã...ãŠãŒã¶ãŒã¯ããã¹ãŠã®ã³ã³ãã³ããšããã®ã³ã³ãã³ããèªåã«åããããŠããªãéšåãéãåºãããšãã§ããŸãã
- phpã«ã¯ã³ããããã£ã±ãã§ãã ãããããããã¯èšèªã®ã¢ãŒããã¯ãã£ã§ã¯ãªããããã°ã©ããŒã®ã¹ãã«ãããã®äœæãå±éããç°å¢ã®èšå®ã§ã¯ãããŸããã ããããã¯ãŒããã¬ã¹ãé 眮ããããå°æ¥ã®ãã°ã«åããŸãã
ãããè¡ãã«ã¯ãnginxã®æ§æã®ãµãŒããŒ{}ã«ã³ãŒããèšè¿°ããŸã ã
ifïŒ$ argsã* "ïŒattachment_id | eval | duplicate | base64 | substring | preg_replace | create_functionïŒ"ïŒ{ 403ãè¿ããŸãã }
次ã«ããªã¯ãšã¹ãã®åŒæ°ã«attachment_idãevalãduplicateãbase64ãsubstringãpreg_replaceãcreate_functionãå«ãŸããå Žåãnginxã¯403ãšã©ãŒãè¿ãããªã¯ãšã¹ãã¯æœåšçãªè匱æ§ãå®è¡ããããã«ãã€ããã¯ã¹ã«æž¡ãããŸããã
nginxã®subs_filterãä»ãããã³
ãã®ã¢ãžã¥ãŒã«ã®ç®çã¯ããã§èŠçŽãããŸãã ã
ã¿ã¹ã¯ïŒããã©ã«ãã§ã¯ãwordpressã¯çŸåšã®ãŠã£ã³ããŠã§ã¡ãã£ã¢ãã¡ã€ã«ãžã®ãªã³ã¯ãéããŸãã ãããŠãããªãã¯æ°ããå¿ èŠããããŸãã
解決çïŒ nginx kogfigã«å°ããªã³ãŒããè¿œå ããŸãã
subs_filter '<a href=\'https://static.example.com/uploads/(.*?)\'>' '<a href = \' httpsïŒ//static.example.com/uploads/$1 \ 'target = \' _ blank \ '>' gi; subs_filter '<a href=\"https://static.example.com/uploads/(.*?)\">' '<a href = \ "httpsïŒ//static.example.com/uploads/$1 \ "target = \" _ blank \ "> 'gi;
ãã®åŸãã¿ãŒã²ãã= "_ blank"ãããã³ããšã³ãã䜿çšããŠã¡ãã£ã¢ãžã®ãªã³ã¯ã«è¿œå ãããŸãã
ã¿ã¹ã¯ïŒã©ãã§ãxmlrpc.phpãªã³ã¯...ãåé€ããå¿ èŠããããŸãã
解決çïŒ nginx kogfigã«å°ããªã³ãŒããè¿œå ããŸãã
subs_filter 'https://example.com/xmlrpc.php' 'https://example.com/xmlrpc.txt' gi;
xmlrpc.txtã§ã¯ãã€ãŒã¹ã¿ãŒãšãã°ã貌ãä»ããããšãã§ããŸãã
ããšãã
- example.comãšstatic.example.comããµãŒããŒã«çœ®ãæããŸãã äŸã¯php5-fpmã ãã§ãªããapacheã§ãæ©èœããŸãã
- ãã®èšäºã§ã¯ããã€ããã¯ã¹ããã£ãã·ã¥ããã«ãCDNã®ã¹ã¿ãã£ãã¯ã®ãã£ãã·ã¥ã®ã¿ãèæ ®ããŠããŸãã ãã®çç±ã¯éåžžã«åçŽã§ããç¡æã®é¢çšã§ã¯ããã£ãã·ã¥ã®æŽæ°æéã¯30åã§ãã ã€ãŸããããŒãžã¯30åãã£ãã·ã¥ã«ä¿åãããŸãã ãµã€ããæŽæ°ãããã³ã«éçºã¢ãŒãã«åãæ¿ããããšãã§ããããã«ãªããŸããïŒãã£ãã·ã¥ãæ¯åéžæçã«ãªã»ãããã代ããã«ïŒã
- å Žæã¯äž»èŠãªãã€ã³ãã瀺ããŸãã ç§ã¯èªè ãç§ã®äººçã§åããŠnginxãšwordpressãå ¥ããªããšããäºå®ã«çŠç¹ãåãããŸãã ãã®èšäºã¯è¡åã®ãã³ããšèããŠãã ããã
- ã¬ã®ã¥ã©ãŒã®èª¬æã¯ããã«ããã ãã®èšäºãèªãããšãã§ããŸãã éçå€æ°ãé åžãããšãã¯ã ãã¬ãã£ãã«ãã¯ã®æ§é ã䜿çšããŸã ãã€ãŸããã¬ã®ã¥ã©ãŒã¯locationã®å€ãåããæ«å°Ÿããå é ãŸã§èŠãŠã .phpãèŠã€ãããªãå Žåã¯ãã¡ã€ã«ãæäŸãããŸãã ãªã¯ãšã¹ãã§phpãèŠã€ãã£ãå Žåã å Žæã¯æ£ãããããŸããããã¹ãŠã®å Žæã§phpãé€å€ãããããã ãããŒã® ã«ãŒããéžæããŸãããã®å Žåã phpãã¡ã€ã«ã¯ãªãïŒç©ºã®ãã©ã«ãã®ã¿ïŒã 404ãè¿ããŸãã
- CloudFlare .comã¯çŽ æŽãããCDNãããã€ããŒã§ããããã§ã«ç¡æã®ãã©ã³ã§ ãã»ãŒãã¹ãŠã®ãããžã§ã¯ãã«ååãªæ©èœãæã«å ¥ããããšãã§ããŸãã
é 匵ã£ãŠïŒ