ããã³ããšã³ããªãªãžã³åé¢ããªã·ãŒã®ä»çµã¿ãå©ç¹ãå®è£ ã培åºè§£èª¬ããŠãŒã¶ãŒãšããŒã¿ãä¿è·ããçŸä»£ã®ãŠã§ãã»ãã¥ãªãã£ã匷åããæ¹æ³ãåŠã³ãŸãã
ããã³ããšã³ããªãªãžã³åé¢ããªã·ãŒïŒçŸä»£ã®ãŠã§ããä¿è·ãã
仿¥ã®ãŸããŸãè€éåãããŠã§ãç°å¢ã«ãããŠãã»ãã¥ãªãã£ã®è åšã¯é©ãã¹ãéãã§é²åããŠããŸããåŸæ¥ã®ã»ãã¥ãªãã£å¯Ÿçã§ã¯ãé«åºŠãªæ»æããä¿è·ããã«ã¯äžååãªããšããããããŸããããã³ããšã³ããªãªãžã³åé¢ããªã·ãŒã¯ãç°ãªããªãªãžã³éã«å ç¢ãªã»ãã¥ãªãã£å¢çãäœæããããšã§ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ã匷åãã匷åãªããŒã«ãšããŠç»å ŽããŸããããã®å æ¬çãªã¬ã€ãã§ã¯ããªãªãžã³åé¢ã®è€éãããã®æ ¹åºã«ããã¡ã«ããºã ãå®è£ æŠç¥ããããŠãŠãŒã¶ãŒããŒã¿ã®ä¿è·ãšã»ãã¥ãªãã£è匱æ§ã®è»œæžã«äžããé倧ãªåœ±é¿ã«ã€ããŠè©³ãã解説ããŸãã
ãªãªãžã³åé¢ã®å¿ èŠæ§ãçè§£ãã
ãŠã§ãã»ãã¥ãªãã£ã®åºç€ã¯ããŠã§ãããŒãžãç°ãªããªãªãžã³ãããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããã®ãå¶éããéèŠãªã¡ã«ããºã ã§ããåäžãªãªãžã³ããªã·ãŒïŒSOPïŒã«åºã¥ããŠããŸãããªãªãžã³ã¯ãã¹ããŒã ïŒãããã³ã«ïŒããã¹ãïŒãã¡ã€ã³ïŒãããã³ããŒãã«ãã£ãŠå®çŸ©ãããŸããSOPã¯åºæ¬çãªã¬ãã«ã®ä¿è·ãæäŸããŸãããå®ç§ã§ã¯ãããŸãããç¹å®ã®ã¯ãã¹ãªãªãžã³ã€ã³ã¿ã©ã¯ã·ã§ã³ã¯èš±å¯ãããŠãããæªæã®ããæ»æè ãæªçšã§ããè匱æ§ã«ã€ãªããããšããããããŸããããã«ãSpectreãMeltdownãšãã£ãCPUã¢ãŒããã¯ãã£ã«ãããéå»ã®è匱æ§ã¯ãåäžãªãªãžã³å ã§ãã£ãŠãæ©å¯æ å ±ãæŒæŽ©ããå¯èœæ§ã®ãããµã€ããã£ãã«æ»æã®å¯èœæ§ãæµ®ã圫ãã«ããŸããããªãªãžã³åé¢ã¯ããã峿 Œãªã»ãã¥ãªãã£å¢çãäœæããããšã§ããããã®å¶éã«å¯ŸåŠããŸãã
ãªãªãžã³åé¢ãšã¯ïŒ
ãªãªãžã³åé¢ã¯ããŠã§ããµã€ãã®ãªãªãžã³ããã©ãŠã¶ããã»ã¹å ã®ä»ã®ãªãªãžã³ããåé¢ããã»ãã¥ãªãã£æ©èœã§ãããã®åé¢ã«ããããµã€ããSpectreãMeltdownã®ãããªç¹å®ã®çš®é¡ã®ã¯ãã¹ãµã€ãæ»æããããŒã¿æŒæŽ©ã«ã€ãªããå¯èœæ§ã®ããåŸæ¥ã®ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒã®è匱æ§ããä¿è·ãããŸãããªãªãžã³åé¢ãå°å ¥ããããšã§ãå®è³ªçã«ãªãªãžã³å°çšã®ããã»ã¹ãŸãã¯äžé£ã®å°çšããã»ã¹ãäœæãããå ±æãªãœãŒã¹ã®å¯èœæ§ãå¶éãããæ å ±æŒæŽ©ã®ãªã¹ã¯ã軜æžãããŸãã
ãªãªãžã³åé¢ã®äž»èŠã³ã³ããŒãã³ã
ãªãªãžã³åé¢ã¯ã以äžã®3ã€ã®äž»èŠãªHTTPããããŒã®çžäºäœçšã«ãã£ãŠå®çŸãããŸãïŒ
- Cross-Origin-Opener-Policy (COOP): ãã®ããããŒã¯ãä»ã®ãªãªãžã³ãããªãã®ãŠã§ããµã€ãããããã¢ãããšããŠéãããã
<iframe>ã«åã蟌ãã ãã§ããããå¶åŸ¡ããŸããCOOPãsame-originãsame-origin-allow-popupsãŸãã¯no-unsafe-noneã«èšå®ãããšãä»ã®ãªãªãžã³ãããªãã®windowãªããžã§ã¯ãã«çŽæ¥ã¢ã¯ã»ã¹ã§ããªããªãããã©ãŠãžã³ã°ã³ã³ããã¹ãã广çã«åé¢ãããŸãã - Cross-Origin-Embedder-Policy (COEP): ãã®ããããŒã¯ãããªãã®ãªãªãžã³ã«ãã£ãŠèªã¿èŸŒãŸããããšã«æç€ºçã«ãªããã€ã³ããŠããªãã¯ãã¹ãªãªãžã³ãªãœãŒã¹ã®èªã¿èŸŒã¿ããããã¯ãããããã©ãŠã¶ã«æç€ºããŸãããªãœãŒã¹ã¯
Cross-Origin-Resource-Policy (CORP)ããããŒãŸãã¯CORSïŒãªãªãžã³éãªãœãŒã¹å ±æïŒããããŒãšãšãã«æäŸãããå¿ èŠããããŸãã - Cross-Origin-Resource-Policy (CORP): ãã®ããããŒã䜿çšãããšãç¹å®ã®ãªãœãŒã¹ãèªã¿èŸŒãããšãã§ãããªãªãžã³ã宣èšã§ããŸããããã«ãããäžæ£ãªãªãªãžã³ã«ãããªãœãŒã¹ã®èªã¿èŸŒã¿ãããªãœãŒã¹ãä¿è·ããã¡ã«ããºã ãæäŸãããŸãã
Cross-Origin-Opener-Policy (COOP) ã®è©³çް
COOPããããŒã¯ãwindowãªããžã§ã¯ããžã®ã¯ãã¹ãªãªãžã³ã¢ã¯ã»ã¹ãé²ãäžã§éèŠãªåœ¹å²ãæãããŸããäž»ãªå€ã¯æ¬¡ã®ãšããã§ãïŒ
same-origin: ããã¯æãå¶éã®å³ãããªãã·ã§ã³ã§ãããã©ãŠãžã³ã°ã³ã³ããã¹ããåäžãªãªãžã³ã®ããã¥ã¡ã³ãã«åé¢ããŸããä»ã®ãªãªãžã³ã®ããã¥ã¡ã³ãã¯ãã®ãŠã£ã³ããŠã«çŽæ¥ã¢ã¯ã»ã¹ã§ããããã®éãåæ§ã§ããsame-origin-allow-popups: ãã®ãªãã·ã§ã³ã§ã¯ãçŸåšã®ããã¥ã¡ã³ãã«ãã£ãŠéããããããã¢ãããããªãŒãããŒãCOOP: same-originãæã£ãŠããŠãããªãŒãããŒãŠã£ã³ããŠãžã®ã¢ã¯ã»ã¹ãç¶æã§ããŸãããã ããä»ã®ãªãªãžã³ã¯äŸç¶ãšããŠãŠã£ã³ããŠã«ã¢ã¯ã»ã¹ã§ããŸãããunsafe-none: ããã¯ããããŒãæå®ãããŠããªãå Žåã®ããã©ã«ãã®åäœã§ãããŠã£ã³ããŠãžã®ã¯ãã¹ãªãªãžã³ã¢ã¯ã»ã¹ãèš±å¯ããæãå®å šæ§ã®äœããªãã·ã§ã³ã§ãã
äŸïŒ
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy (COEP) ã®è©³çް
COEPããããŒã¯ãSpectreã¹ã¿ã€ã«ã®æ»æã軜æžããããã«èšèšãããŠããŸãããŠã§ããµã€ãã«ãã£ãŠèªã¿èŸŒãŸãããã¹ãŠã®ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ããããªãã®ãªãªãžã³ããã®èªã¿èŸŒã¿ã«æç€ºçã«ãªããã€ã³ããããšãèŠæ±ããŸããããã¯ãCross-Origin-Resource-PolicyããããŒãèšå®ããããCORSã䜿çšããããšã«ãã£ãŠå®çŸãããŸãã
äž»ãªå€ã¯æ¬¡ã®ãšããã§ãïŒ
require-corp: ããã¯æãå¶éã®å³ãããªãã·ã§ã³ã§ãããã¹ãŠã®ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ããããªãã®ãªãªãžã³ã«ããèªã¿èŸŒã¿ãæç€ºçã«èš±å¯ããCORPããããŒãšãšãã«èªã¿èŸŒãŸããããšãèŠæ±ããŸããcredentialless:require-corpã«äŒŒãŠããŸãããã¯ãã¹ãªãªãžã³ãªã¯ãšã¹ãã§èªèšŒæ å ±ïŒCookieãHTTPèªèšŒïŒãéä¿¡ããŸãããããã¯ãããªãã¯ãªãœãŒã¹ãèªã¿èŸŒãã®ã«äŸ¿å©ã§ããunsafe-none: ããã¯ããã©ã«ãã®åäœã§ããã¯ãã¹ãªãªãžã³ãªãœãŒã¹ãå¶éãªãèªã¿èŸŒãããšãèš±å¯ããŸãã
äŸïŒ
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Resource-Policy (CORP) ã®è©³çް
CORPããããŒã䜿çšãããšãç¹å®ã®ãªãœãŒã¹ãèªã¿èŸŒãããšãèš±å¯ãããªãªãžã³ãæå®ã§ããŸããã¯ãã¹ãªãªãžã³ãªãœãŒã¹ã¢ã¯ã»ã¹ã«å¯ŸããŠããã现ããå¶åŸ¡ãæäŸããŸãã
äž»ãªå€ã¯æ¬¡ã®ãšããã§ãïŒ
same-origin: ãªãœãŒã¹ã¯åäžãªãªãžã³ããã®ãªã¯ãšã¹ãã«ãã£ãŠã®ã¿èªã¿èŸŒãããšãã§ããŸããsame-site: ãªãœãŒã¹ã¯åäžãµã€ãïŒåäžã¹ããŒã ããã³eTLD+1ïŒããã®ãªã¯ãšã¹ãã«ãã£ãŠã®ã¿èªã¿èŸŒãããšãã§ããŸããcross-origin: ãªãœãŒã¹ã¯ä»»æã®ãªãªãžã³ããèªã¿èŸŒãããšãã§ããŸãããã®ãªãã·ã§ã³ã¯äºå®äžCORPä¿è·ãç¡å¹ã«ãããããæ³šæããŠäœ¿çšããå¿ èŠããããŸãã
äŸïŒ
Cross-Origin-Resource-Policy: same-origin
ãªãªãžã³åé¢ã®å®è£ ïŒã¹ããããã€ã¹ãããã¬ã€ã
ãªãªãžã³åé¢ã®å®è£ ã«ã¯ãæ éãã€äœç³»çãªã¢ãããŒããå¿ èŠã§ãã以äžã«ã¹ããããã€ã¹ãããã¬ã€ãã瀺ããŸãïŒ
- äŸåé¢ä¿ã®åæïŒ ç»åãã¹ã¯ãªãããã¹ã¿ã€ã«ã·ãŒãããã©ã³ããªã©ããŠã§ããµã€ããèªã¿èŸŒããã¹ãŠã®ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ãç¹å®ããŸãããã®ã¹ãããã¯ãCOEPãæå¹ã«ããå Žåã®åœ±é¿ãçè§£ããããã«äžå¯æ¬ ã§ãããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠãå æ¬çãªãªã¹ããååŸããŠãã ããã
- CORPããããŒã®èšå®ïŒ ããªãã管çããåãªãœãŒã¹ã«å¯ŸããŠãé©åãª
Cross-Origin-Resource-PolicyããããŒãèšå®ããŸãããªãœãŒã¹ãèªèº«ã®ãªãªãžã³ããã®ã¿èªã¿èŸŒãŸããããšãæå³ããŠããå Žåã¯ãsame-originã«èšå®ããŸããåäžãµã€ãããèªã¿èŸŒãŸããããšãæå³ããŠããå Žåã¯ãsame-siteã«èšå®ããŸãã管çããŠããªããªãœãŒã¹ã«ã€ããŠã¯ãã¹ããã4ãåç §ããŠãã ããã - CORSã®èšå®ïŒ ç°ãªããªãªãžã³ãããªãœãŒã¹ãèªã¿èŸŒãå¿
èŠãããããããã®ãªãœãŒã¹ã«CORPããããŒãèšå®ã§ããªãå Žåã¯ãCORSã䜿çšããŠã¯ãã¹ãªãªãžã³ã¢ã¯ã»ã¹ãèš±å¯ã§ããŸãããªãœãŒã¹ããã¹ãããŠãããµãŒããŒã¯ãã¬ã¹ãã³ã¹ã«
Access-Control-Allow-OriginããããŒãå«ããå¿ èŠããããŸããäŸãã°ãä»»æã®ãªãªãžã³ããã®ãªã¯ãšã¹ããèš±å¯ããã«ã¯ãããããŒãAccess-Control-Allow-Origin: *ã«èšå®ããŸãããã ããä»»æã®ãªãªãžã³ããã®ã¢ã¯ã»ã¹ãèš±å¯ããããšã®ã»ãã¥ãªãã£äžã®æå³åãã«æ³šæããŠãã ãããèš±å¯ããæ£ç¢ºãªãªãªãžã³ãæå®ããæ¹ãå€ãã®å Žåãããè¯ãæ¹æ³ã§ãã - 管çããŠããªããªãœãŒã¹ãžã®å¯ŸåŠïŒ ããªãã管çããŠããªããµãŒãããŒãã£ã®ãã¡ã€ã³ã§ãã¹ããããŠãããªãœãŒã¹ã«ã€ããŠã¯ãããã€ãã®éžæè¢ããããŸãïŒ
- CORSããããŒã®ãªã¯ãšã¹ãïŒ ãµãŒãããŒãã£ã®ãããã€ããŒã«é£çµ¡ããã¬ã¹ãã³ã¹ã«é©åãªCORSããããŒã远å ããããäŸé ŒããŸãã
- ãªãœãŒã¹ã®ãããã·ïŒ èªèº«ã®ãã¡ã€ã³ã«ãªãœãŒã¹ã®ã³ããŒããã¹ãããæ£ããCORPããããŒãä»ããŠæäŸããŸããããã«ããã€ã³ãã©ãè€éã«ãªãå¯èœæ§ãããããµãŒãããŒãã£ã®å©çšèŠçŽã«éåããå¯èœæ§ããããããå¿ èŠãªèš±å¯ãåŸãŠããããšã確èªããŠãã ããã
- ä»£æ¿ææ®µãæ¢ãïŒ èªèº«ã§ãã¹ãã§ããããŸãã¯ãã§ã«æ£ããCORSããããŒãæã€ä»£æ¿ãªãœãŒã¹ãæ¢ããŸãã
<iframe>ã®äœ¿çšïŒæ³šæããŠïŒïŒ ãªãœãŒã¹ã<iframe>ã«èªã¿èŸŒã¿ãpostMessageã䜿çšããŠéä¿¡ããŸããããã«ãããããªãã®è€éããšããã©ãŒãã³ã¹äžã®ãªãŒããŒãããã远å ããããã¹ãŠã®ã·ããªãªã«é©ããŠããããã§ã¯ãªãå¯èœæ§ããããŸãã
- COEPããããŒã®èšå®ïŒ ãã¹ãŠã®ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ã«å¯ŸåŠãããã
Cross-Origin-Embedder-PolicyããããŒãrequire-corpã«èšå®ããŸããããã«ããããã¹ãŠã®ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ãCORPãŸãã¯CORSããããŒãšå ±ã«èªã¿èŸŒãŸããããšã匷å¶ãããŸãã - COOPããããŒã®èšå®ïŒ
Cross-Origin-Opener-PolicyããããŒãsame-originãŸãã¯same-origin-allow-popupsã«èšå®ããŸããããã«ããããã©ãŠãžã³ã°ã³ã³ããã¹ããä»ã®ãªãªãžã³ããåé¢ãããŸãã - 培åºçãªãã¹ãïŒ ãªãªãžã³åé¢ãæå¹ã«ããåŸããŠã§ããµã€ãã培åºçã«ãã¹ãããŠããã¹ãŠã®ãªãœãŒã¹ãæ£ããèªã¿èŸŒãŸããäºæããªããšã©ãŒããªãããšã確èªããŸãããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠãåé¡ãç¹å®ã解決ããŠãã ããã
- ç£èŠãšååŸ©ïŒ ãªãªãžã³åé¢ã«é¢é£ããåé¡ããªããããŠã§ããµã€ããç¶ç¶çã«ç£èŠããŸããå¿ èŠã«å¿ããŠèšå®ã調æŽããæºåãããŠãã ããã
å®è·µçãªäŸãšã³ãŒãã¹ãããã
äŸ1ïŒNode.jsãšExpressã§ã®ããããŒèšå®
const express = require('express');
const app = express();
app.use((req, res, next) => {
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp');
res.setHeader('Cross-Origin-Resource-Policy', 'same-origin');
next();
});
app.get('/', (req, res) => {
res.send('Hello, Origin Isolated World!');
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
äŸ2ïŒApacheã§ã®ããããŒèšå®
Apacheã®èšå®ãã¡ã€ã«ïŒäŸïŒ.htaccess ãŸã㯠httpd.confïŒå
ïŒ
Header set Cross-Origin-Opener-Policy "same-origin"
Header set Cross-Origin-Embedder-Policy "require-corp"
Header set Cross-Origin-Resource-Policy "same-origin"
äŸ3ïŒNginxã§ã®ããããŒèšå®
Nginxã®èšå®ãã¡ã€ã«ïŒäŸïŒnginx.confïŒå
ïŒ
add_header Cross-Origin-Opener-Policy "same-origin";
add_header Cross-Origin-Embedder-Policy "require-corp";
add_header Cross-Origin-Resource-Policy "same-origin";
äžè¬çãªåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãªãªãžã³åé¢ãå®è£ ãããšãäºæããªãåé¡ãçºçããããšããããŸãã以äžã«ãäžè¬çãªåé¡ãšãã®è§£æ±ºçãããã€ã瀺ããŸãïŒ
- ãªãœãŒã¹ã®èªã¿èŸŒã¿å€±æïŒ ããã¯éåžžãäžé©åãªCORPãŸãã¯CORSã®èšå®ãåå ã§ãããã¹ãŠã®ã¯ãã¹ãªãªãžã³ãªãœãŒã¹ãæ£ããããããŒãæã£ãŠããããšãå確èªããŠãã ããããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠã倱æããŠãããªãœãŒã¹ãšç¹å®ã®ãšã©ãŒã¡ãã»ãŒãžãç¹å®ããŸãã
- ãŠã§ããµã€ãã®æ©èœäžå
šïŒ ç¹å®ã®ãŠã§ããµã€ãæ©èœãã¯ãã¹ãªãªãžã³ã¢ã¯ã»ã¹ã«äŸåããŠããå ŽåããããŸãããããã®æ©èœãç¹å®ããããã«å¿ããŠèšå®ã調æŽããŠãã ãããéå®çãªã¯ãã¹ãªãªãžã³éä¿¡ã®ããã«
postMessageã䌎ã<iframe>ã®äœ¿çšãæ€èšããŸãããããã©ãŒãã³ã¹ãžã®åœ±é¿ã«æ³šæããŠãã ããã - ãããã¢ãããæ©èœããªãïŒ ãŠã§ããµã€ãããããã¢ããã䜿çšããŠããå Žåããããã¢ããããªãŒãããŒãŠã£ã³ããŠãžã®ã¢ã¯ã»ã¹ãç¶æã§ããããã«ããããã«
COOP: same-origin-allow-popupsã䜿çšããå¿ èŠããããããããŸããã - ãµãŒãããŒãã£ã©ã€ãã©ãªãæ©èœããªãïŒ äžéšã®ãµãŒãããŒãã£ã©ã€ãã©ãªã¯ããªãªãžã³åé¢ãšäºææ§ããªãå ŽåããããŸãã代æ¿ã©ã€ãã©ãªãæ¢ãããã©ã€ãã©ãªã®éçºè ã«é£çµ¡ããŠCORPããã³CORSã®ãµããŒããäŸé ŒããŠãã ããã
ãªãªãžã³åé¢ã®å©ç¹
ãªãªãžã³åé¢ãå®è£ ããå©ç¹ã¯éèŠã§ãïŒ
- ã»ãã¥ãªãã£ã®åŒ·åïŒ SpectreãMeltdownã¹ã¿ã€ã«ã®æ»æãããã³ãã®ä»ã®ã¯ãã¹ãµã€ãã®è匱æ§ã軜æžããŸãã
- ããŒã¿ä¿è·ã®åäžïŒ æ©å¯æ§ã®é«ããŠãŒã¶ãŒããŒã¿ãäžæ£ãªã¢ã¯ã»ã¹ããä¿è·ããŸãã
- ä¿¡é Œæ§ã®åäžïŒ ã»ãã¥ãªãã£ãžã®ã³ãããã¡ã³ãã瀺ãããŠãŒã¶ãŒãããŒãããŒãšã®ä¿¡é Œãæ§ç¯ããŸãã
- ã³ã³ãã©ã€ã¢ã³ã¹ïŒ ããŒã¿ãã©ã€ãã·ãŒãšã»ãã¥ãªãã£ã«é¢é£ããèŠå¶èŠä»¶ãæºããã®ã«åœ¹ç«ã¡ãŸãã
ããã©ãŒãã³ã¹ãžã®åœ±é¿
ãªãªãžã³åé¢ã¯å€§ããªã»ãã¥ãªãã£äžã®å©ç¹ãæäŸããŸããããŠã§ããµã€ãã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããåé¢ã匷åãããããšã§ãã¡ã¢ãªæ¶è²»éãCPU䜿çšçãé«ããªãå¯èœæ§ããããŸããããããããã©ãŒãã³ã¹ãžã®åœ±é¿ã¯äžè¬çã«æå°éã§ãããå€ãã®å Žåãã»ãã¥ãªãã£äžã®å©ç¹ããããäžåããŸããããã«ãçŸä»£ã®ãã©ãŠã¶ã¯ãªãªãžã³åé¢ã®ãªãŒããŒããããæå°éã«æããããã«åžžã«æé©åãããŠããŸãã
ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããããã®ããã€ãã®æŠç¥ã以äžã«ç€ºããŸãïŒ
- ãªãœãŒã¹èªã¿èŸŒã¿ã®æé©åïŒ ã³ãŒãåå²ãé å»¶èªã¿èŸŒã¿ããã£ãã·ã³ã°ãªã©ã®æè¡ã䜿çšããŠããŠã§ããµã€ãããªãœãŒã¹ãå¹ççã«èªã¿èŸŒãã§ããããšã確èªããŸãã
- CDNã®äœ¿çšïŒ ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒã䜿çšããŠãªãœãŒã¹ãå°ççã«åæ£ãããé å»¶ãæžãããèªã¿èŸŒã¿æéãæ¹åããŸãã
- ããã©ãŒãã³ã¹ã®ç£èŠïŒ ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠãããªãªãžã³åé¢ã«é¢é£ããããã«ããã¯ãç¹å®ããŸãã
ãªãªãžã³åé¢ãšãŠã§ãã»ãã¥ãªãã£ã®æªæ¥
ãªãªãžã³åé¢ã¯ããŠã§ãã»ãã¥ãªãã£ã«ããã倧ããªåé²ãæå³ããŸãããŠã§ãã¢ããªã±ãŒã·ã§ã³ããŸããŸãè€éåããããŒã¿é§ååã«ãªãã«ã€ããŠãå ç¢ãªã»ãã¥ãªãã£å¯Ÿçã®å¿ èŠæ§ã¯å¢ãã°ããã§ãããªãªãžã³åé¢ã¯ãããå®å šã§ä¿¡é Œæ§ã®é«ããŠã§ãäœéšãæ§ç¯ããããã®åŒ·åºãªåºç€ãæäŸããŸãããã©ãŠã¶ãã³ããŒããªãªãžã³åé¢ãæ¹åããæŽç·Žããç¶ããã«ã€ããŠããã¹ãŠã®ãŠã§ãéçºè ã«ãšã£ãŠæšæºçãªæ £è¡ãšãªãå¯èœæ§ãé«ãã§ãã
ã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«ãªãªãžã³åé¢ãå®è£ ããéã«ã¯ã次ã®ç¹ãèæ ®ããŠãã ããïŒ
- ã³ã³ãã³ãããªããªãŒãããã¯ãŒã¯ïŒCDNïŒïŒ äžçäžã«ååšããPOPïŒPoints of PresenceïŒãæã€CDNãå©çšããŠããŠãŒã¶ãŒã®å Žæã«é¢ä¿ãªããªãœãŒã¹ãžã®äœé å»¶ã¢ã¯ã»ã¹ãä¿èšŒããŸããCDNã¯ãŸããCOOPãCOEPãCORPãå«ãæ£ããHTTPããããŒãèšå®ããããã»ã¹ãç°¡çŽ åããŸãã
- åœéåãã¡ã€ã³åïŒIDNïŒïŒ ãŠã§ããµã€ããšãªãœãŒã¹ãIDNã䜿çšããŠã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸãããã£ãã·ã³ã°æ»æãé¿ããç°ãªãèšèªèšå®ãæã€ãŠãŒã¶ãŒã«äžè²«ããã¢ã¯ã»ã¹ãä¿èšŒããããã«ããã¡ã€ã³ç»é²ãšDNSèšå®ãæ éã«ç®¡çããŸãã
- æ³çããã³èŠå¶ã³ã³ãã©ã€ã¢ã³ã¹ïŒ ããŸããŸãªåœãå°åã®ããŒã¿ãã©ã€ãã·ãŒããã³ã»ãã¥ãªãã£èŠå¶ã«æ³šæããŠãã ããããªãªãžã³åé¢ã¯ã欧å·é£åã®GDPRïŒäžè¬ããŒã¿ä¿è·èŠåïŒãç±³åœã®CCPAïŒã«ãªãã©ã«ãã¢å·æ¶è²»è ãã©ã€ãã·ãŒæ³ïŒãªã©ã®èŠå¶ã«æºæ ããã®ã«åœ¹ç«ã¡ãŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒ ãªãªãžã³åé¢ãå®è£ ããåŸãããŠã§ããµã€ããé害ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã·ãã«ã§ããç¶ããããšã確èªããŸããæ¯æŽæè¡ã§ãŠã§ããµã€ãããã¹ãããWCAGïŒãŠã§ãã³ã³ãã³ãã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ïŒãªã©ã®ã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ã«åŸã£ãŠãã ããã
- ãµãŒãããŒãã£ãµãŒãã¹ïŒ ãŠã§ããµã€ãã«çµ±åãããµãŒãããŒãã£ãµãŒãã¹ã®ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒæ £è¡ãæ éã«è©äŸ¡ããŸãããããã®ãµãŒãã¹ããªãªãžã³åé¢ããµããŒãããé¢é£ããèŠå¶ã«æºæ ããŠããããšã確èªããŠãã ããã
çµè«
ããã³ããšã³ããªãªãžã³åé¢ããªã·ãŒã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ãå€§å¹ ã«åŒ·åã§ãã匷åãªã»ãã¥ãªãã£ã¡ã«ããºã ã§ãããã®åºæ¬ååãçè§£ããæ£ããããããŒãå®è£ ããæœåšçãªåé¡ã«å¯ŸåŠããããšã§ãéçºè ã¯äžçäžã®ãŠãŒã¶ãŒã®ããã«ããå®å šã§ä¿¡é Œæ§ã®é«ããŠã§ãäœéšãåµé ã§ããŸããå®è£ ã«ã¯æ éãªèšç»ãšãã¹ããå¿ èŠã§ããããªãªãžã³åé¢ã®å©ç¹ã¯ãã®èª²é¡ãã¯ããã«äžåããŸãããŠã§ãã»ãã¥ãªãã£æŠç¥ã®äž»èŠã³ã³ããŒãã³ããšããŠãªãªãžã³åé¢ãåãå ¥ããé²åãç¶ããè åšã®ç¶æ³ãããŠãŒã¶ãŒãšããŒã¿ãä¿è·ããŠãã ããã