[{"data":1,"prerenderedAt":668},["ShallowReactive",2],{"page-\u002Fwebchat\u002Fcsp":3},{"id":4,"title":5,"body":6,"description":659,"endpoint":660,"extension":661,"icon":660,"meta":662,"method":660,"nav":660,"navigation":663,"path":664,"seo":665,"stem":666,"__hash__":667},"docs\u002Fwebchat\u002Fcsp.md","Content Security Policy",{"type":7,"value":8,"toc":651},"minimark",[9,13,18,119,132,138,142,149,175,262,266,276,306,309,312,370,373,408,452,462,466,473,630,647],[10,11,12],"p",{},"Jika website Anda memakai Content Security Policy (CSP), browser memblokir widget sampai sumbernya diizinkan. Tambahkan sumber berikut ke policy yang sudah ada. Jangan mengganti seluruh policy Anda dengan contoh di halaman ini.",[14,15,17],"h2",{"id":16},"directive-yang-dibutuhkan","Directive yang dibutuhkan",[19,20,21,37],"table",{},[22,23,24],"thead",{},[25,26,27,31,34],"tr",{},[28,29,30],"th",{},"Directive",[28,32,33],{},"Sumber",[28,35,36],{},"Untuk",[38,39,40,59,75,89,104],"tbody",{},[25,41,42,49,54],{},[43,44,45],"td",{},[46,47,48],"code",{},"script-src",[43,50,51],{},[46,52,53],{},"https:\u002F\u002Fapp.csku.ai",[43,55,56],{},[46,57,58],{},"widget.js",[25,60,61,66,70],{},[43,62,63],{},[46,64,65],{},"style-src",[43,67,68],{},[46,69,53],{},[43,71,72],{},[46,73,74],{},"widget.css",[25,76,77,82,86],{},[43,78,79],{},[46,80,81],{},"frame-src",[43,83,84],{},[46,85,53],{},[43,87,88],{},"Jendela chat (iframe)",[25,90,91,96,101],{},[43,92,93],{},[46,94,95],{},"connect-src",[43,97,98],{},[46,99,100],{},"https:\u002F\u002Fapi.csku.ai",[43,102,103],{},"Mengambil warna, posisi, dan logo dari dashboard",[25,105,106,111,116],{},[43,107,108],{},[46,109,110],{},"img-src",[43,112,113],{},[46,114,115],{},"https:\u002F\u002Fcdn.aplikasikreasi.id",[43,117,118],{},"Logo di tombol widget",[10,120,121,122,125,126,131],{},"Baris ",[46,123,124],{},"window.cskuSettings = ..."," adalah script inline. Izinkan dengan salah satu cara di ",[127,128,130],"a",{"href":129},"#script-inline","Script inline",".",[10,133,134,135,131],{},"Pemeriksaan anti-spam (Cloudflare Turnstile) berjalan di dalam iframe CSKU, jadi website Anda tidak perlu mengizinkan ",[46,136,137],{},"challenges.cloudflare.com",[14,139,141],{"id":140},"contoh-header","Contoh header",[10,143,144,145,148],{},"Contoh ini memakai nonce untuk script inline. Ganti ",[46,146,147],{},"RANDOM_NONCE"," dengan nilai acak baru di setiap respons.",[150,151,156],"pre",{"className":152,"code":153,"language":154,"meta":155,"style":155},"language-http shiki shiki-themes github-light github-dark","Content-Security-Policy: default-src 'self'; script-src 'self' https:\u002F\u002Fapp.csku.ai 'nonce-RANDOM_NONCE'; style-src 'self' https:\u002F\u002Fapp.csku.ai; frame-src https:\u002F\u002Fapp.csku.ai; connect-src 'self' https:\u002F\u002Fapi.csku.ai; img-src 'self' https:\u002F\u002Fcdn.aplikasikreasi.id\n","http","",[46,157,158],{"__ignoreMap":155},[159,160,163,167,171],"span",{"class":161,"line":162},"line",1,[159,164,166],{"class":165},"s9eBZ","Content-Security-Policy",[159,168,170],{"class":169},"szBVR",":",[159,172,174],{"class":173},"sZZnC"," default-src 'self'; script-src 'self' https:\u002F\u002Fapp.csku.ai 'nonce-RANDOM_NONCE'; style-src 'self' https:\u002F\u002Fapp.csku.ai; frame-src https:\u002F\u002Fapp.csku.ai; connect-src 'self' https:\u002F\u002Fapi.csku.ai; img-src 'self' https:\u002F\u002Fcdn.aplikasikreasi.id\n",[150,176,180],{"className":177,"code":178,"language":179,"meta":155,"style":155},"language-html shiki shiki-themes github-light github-dark","\u003Cscript nonce=\"RANDOM_NONCE\">window.cskuSettings = {\"channelKey\": \"\u003CID_CHANNEL>\", \"position\": \"right\"};\u003C\u002Fscript>\n\u003Cscript src=\"https:\u002F\u002Fapp.csku.ai\u002Fwidget\u002Fwidget.js\" async>\u003C\u002Fscript>\n","html",[46,181,182,237],{"__ignoreMap":155},[159,183,184,188,191,195,198,201,204,206,209,212,215,218,221,224,226,229,232,234],{"class":161,"line":162},[159,185,187],{"class":186},"sVt8B","\u003C",[159,189,190],{"class":165},"script",[159,192,194],{"class":193},"sScJk"," nonce",[159,196,197],{"class":186},"=",[159,199,200],{"class":173},"\"RANDOM_NONCE\"",[159,202,203],{"class":186},">window.cskuSettings ",[159,205,197],{"class":169},[159,207,208],{"class":186}," {",[159,210,211],{"class":173},"\"channelKey\"",[159,213,214],{"class":186},": ",[159,216,217],{"class":173},"\"\u003CID_CHANNEL>\"",[159,219,220],{"class":186},", ",[159,222,223],{"class":173},"\"position\"",[159,225,214],{"class":186},[159,227,228],{"class":173},"\"right\"",[159,230,231],{"class":186},"};\u003C\u002F",[159,233,190],{"class":165},[159,235,236],{"class":186},">\n",[159,238,240,242,244,247,249,252,255,258,260],{"class":161,"line":239},2,[159,241,187],{"class":186},[159,243,190],{"class":165},[159,245,246],{"class":193}," src",[159,248,197],{"class":186},[159,250,251],{"class":173},"\"https:\u002F\u002Fapp.csku.ai\u002Fwidget\u002Fwidget.js\"",[159,253,254],{"class":193}," async",[159,256,257],{"class":186},">\u003C\u002F",[159,259,190],{"class":165},[159,261,236],{"class":186},[14,263,265],{"id":264},"contoh-meta-tag","Contoh meta tag",[10,267,268,269,272,273,170],{},"Jika Anda tidak bisa mengatur header server, pakai tag ",[46,270,271],{},"\u003Cmeta>"," di ",[46,274,275],{},"\u003Chead>",[150,277,279],{"className":177,"code":278,"language":179,"meta":155,"style":155},"\u003Cmeta http-equiv=\"Content-Security-Policy\" content=\"default-src 'self'; script-src 'self' https:\u002F\u002Fapp.csku.ai 'unsafe-inline'; style-src 'self' https:\u002F\u002Fapp.csku.ai; frame-src https:\u002F\u002Fapp.csku.ai; connect-src 'self' https:\u002F\u002Fapi.csku.ai; img-src 'self' https:\u002F\u002Fcdn.aplikasikreasi.id\">\n",[46,280,281],{"__ignoreMap":155},[159,282,283,285,288,291,293,296,299,301,304],{"class":161,"line":162},[159,284,187],{"class":186},[159,286,287],{"class":165},"meta",[159,289,290],{"class":193}," http-equiv",[159,292,197],{"class":186},[159,294,295],{"class":173},"\"Content-Security-Policy\"",[159,297,298],{"class":193}," content",[159,300,197],{"class":186},[159,302,303],{"class":173},"\"default-src 'self'; script-src 'self' https:\u002F\u002Fapp.csku.ai 'unsafe-inline'; style-src 'self' https:\u002F\u002Fapp.csku.ai; frame-src https:\u002F\u002Fapp.csku.ai; connect-src 'self' https:\u002F\u002Fapi.csku.ai; img-src 'self' https:\u002F\u002Fcdn.aplikasikreasi.id\"",[159,305,236],{"class":186},[14,307,130],{"id":308},"script-inline",[10,310,311],{},"Pilih salah satu:",[313,314,315,334,347,362],"ul",{},[316,317,318,322,323,326,327,329,330,333],"li",{},[319,320,321],"strong",{},"Nonce."," Tambahkan ",[46,324,325],{},"'nonce-\u003Cnilai>'"," ke ",[46,328,48],{}," dan atribut ",[46,331,332],{},"nonce=\"\u003Cnilai>\""," ke tag settings. Nilai harus acak dan baru di setiap respons.",[316,335,336,339,340,342,343,346],{},[319,337,338],{},"Hash."," Tambahkan hash SHA-256 isi script settings ke ",[46,341,48],{},", misalnya ",[46,344,345],{},"'sha256-...'",". Hash berubah jika isi script berubah, termasuk spasi.",[316,348,349,352,353,355,356,358,359,131],{},[319,350,351],{},"File eksternal."," Pindahkan baris settings ke file JavaScript di domain Anda, lalu muat sebelum ",[46,354,58],{},". Tidak perlu mengubah ",[46,357,48],{}," selain ",[46,360,361],{},"'self'",[316,363,364,369],{},[319,365,366,131],{},[46,367,368],{},"'unsafe-inline'"," Paling mudah, tetapi melemahkan CSP untuk seluruh halaman. Hindari jika bisa.",[10,371,372],{},"Contoh file eksternal:",[150,374,378],{"className":375,"code":376,"language":377,"meta":155,"style":155},"language-js shiki shiki-themes github-light github-dark","\u002F\u002F \u002Fjs\u002Fcsku-settings.js\nwindow.cskuSettings = { channelKey: '\u003CID_CHANNEL>', position: 'right' }\n","js",[46,379,380,386],{"__ignoreMap":155},[159,381,382],{"class":161,"line":162},[159,383,385],{"class":384},"sJ8bj","\u002F\u002F \u002Fjs\u002Fcsku-settings.js\n",[159,387,388,391,393,396,399,402,405],{"class":161,"line":239},[159,389,390],{"class":186},"window.cskuSettings ",[159,392,197],{"class":169},[159,394,395],{"class":186}," { channelKey: ",[159,397,398],{"class":173},"'\u003CID_CHANNEL>'",[159,400,401],{"class":186},", position: ",[159,403,404],{"class":173},"'right'",[159,406,407],{"class":186}," }\n",[150,409,411],{"className":177,"code":410,"language":179,"meta":155,"style":155},"\u003Cscript src=\"\u002Fjs\u002Fcsku-settings.js\">\u003C\u002Fscript>\n\u003Cscript src=\"https:\u002F\u002Fapp.csku.ai\u002Fwidget\u002Fwidget.js\" async>\u003C\u002Fscript>\n",[46,412,413,432],{"__ignoreMap":155},[159,414,415,417,419,421,423,426,428,430],{"class":161,"line":162},[159,416,187],{"class":186},[159,418,190],{"class":165},[159,420,246],{"class":193},[159,422,197],{"class":186},[159,424,425],{"class":173},"\"\u002Fjs\u002Fcsku-settings.js\"",[159,427,257],{"class":186},[159,429,190],{"class":165},[159,431,236],{"class":186},[159,433,434,436,438,440,442,444,446,448,450],{"class":161,"line":239},[159,435,187],{"class":186},[159,437,190],{"class":165},[159,439,246],{"class":193},[159,441,197],{"class":186},[159,443,251],{"class":173},[159,445,254],{"class":193},[159,447,257],{"class":186},[159,449,190],{"class":165},[159,451,236],{"class":186},[10,453,454,455,458,459,461],{},"Muat file settings tanpa ",[46,456,457],{},"async",", supaya selesai sebelum ",[46,460,58],{}," berjalan.",[14,463,465],{"id":464},"troubleshooting","Troubleshooting",[10,467,468,469,472],{},"Buka Console browser (F12). Pesan widget berawalan ",[46,470,471],{},"[CSKU Webchat]",". Pelanggaran CSP muncul sebagai pesan \"Refused to load ...\" atau \"Refused to execute inline script ...\".",[19,474,475,488],{},[22,476,477],{},[25,478,479,482,485],{},[28,480,481],{},"Gejala",[28,483,484],{},"Penyebab",[28,486,487],{},"Solusi",[38,489,490,506,525,543,566,581,596,611],{},[25,491,492,497,503],{},[43,493,494],{},[46,495,496],{},"[CSKU Webchat] channelKey tidak valid atau belum diisi.",[43,498,499,502],{},[46,500,501],{},"channelKey"," kosong atau salah format, atau script settings diblokir CSP.",[43,504,505],{},"Salin ulang kode dari dashboard. Izinkan script inline.",[25,507,508,513,520],{},[43,509,510],{},[46,511,512],{},"[CSKU Webchat] Gagal memuat widget.css.",[43,514,515,517,518,131],{},[46,516,65],{}," belum mengizinkan ",[46,519,53],{},[43,521,522,523,131],{},"Tambahkan ke ",[46,524,65],{},[25,526,527,532,537],{},[43,528,529],{},[46,530,531],{},"[CSKU Webchat] Loader harus dimuat lewat \u003Cscript src=\"...\">.",[43,533,534,536],{},[46,535,58],{}," disalin isinya ke script inline atau dimuat lewat cara lain.",[43,538,539,540,131],{},"Muat dengan ",[46,541,542],{},"\u003Cscript src=\"https:\u002F\u002Fapp.csku.ai\u002Fwidget\u002Fwidget.js\" async>",[25,544,545,550,553],{},[43,546,547],{},[46,548,549],{},"[CSKU Webchat] secretKey dan merchantId tidak dipakai lagi.",[43,551,552],{},"Snippet versi lama.",[43,554,555,556,559,560,563,564,131],{},"Hapus ",[46,557,558],{},"secretKey"," dan ",[46,561,562],{},"merchantId",", pakai ",[46,565,501],{},[25,567,568,571,577],{},[43,569,570],{},"Tombol muncul, jendela chat kosong",[43,572,573,517,575,131],{},[46,574,81],{},[46,576,53],{},[43,578,522,579,131],{},[46,580,81],{},[25,582,583,586,592],{},[43,584,585],{},"Warna atau posisi tidak sesuai dashboard",[43,587,588,517,590,131],{},[46,589,95],{},[46,591,100],{},[43,593,522,594,131],{},[46,595,95],{},[25,597,598,601,607],{},[43,599,600],{},"Logo tidak tampil di tombol",[43,602,603,517,605,131],{},[46,604,110],{},[46,606,115],{},[43,608,522,609,131],{},[46,610,110],{},[25,612,613,616,623],{},[43,614,615],{},"Tidak ada pesan, tombol tidak muncul",[43,617,618,620,621,131],{},[46,619,48],{}," memblokir ",[46,622,58],{},[43,624,625,626,326,628,131],{},"Tambahkan ",[46,627,53],{},[46,629,48],{},[10,631,632,633,635,636,639,640,643,644,646],{},"Jika ",[46,634,81],{}," tidak ada di policy Anda, browser memakai ",[46,637,638],{},"child-src"," lalu ",[46,641,642],{},"default-src",". Tambahkan ",[46,645,53],{}," di directive yang berlaku.",[648,649,650],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":155,"searchDepth":652,"depth":652,"links":653},3,[654,655,656,657,658],{"id":16,"depth":239,"text":17},{"id":140,"depth":239,"text":141},{"id":264,"depth":239,"text":265},{"id":308,"depth":239,"text":130},{"id":464,"depth":239,"text":465},"Directive CSP yang perlu diizinkan agar widget Webchat tampil di website Anda.",null,"md",{},true,"\u002Fwebchat\u002Fcsp",{"title":5,"description":659},"webchat\u002Fcsp","11DaJ22V3c8RXz4SG2nIqoNyS7BkIAJE7doEbFj-jQI",1791957694417]