Content Security Policy na CMP Yako: Kufanya CSP na Idhini Zifanye Kazi Pamoja

Tabaka Mbili za Usalama Zinazopaswa Kukubaliana

Content Security Policy (CSP) huambia kivinjari ni vyanzo gani ukurasa unaruhusiwa kupakia hati, mitindo, picha, fremu na maombi ya mtandao. Jukwaa la usimamizi wa idhini hufanya kazi kinyume: huamua ni hati zipi kati ya hizo zinaruhusiwa kuendeshwa kulingana na chaguo la mtumiaji. Vikisanidiwa kando, vinagongana. CMP inashindwa kupakia kwa sababu CSP inaizuia, au CSP inalegezwa sana kuhudumia CMP na lebo za matangazo hivi kwamba haikingi chochote tena.

Mwongozo huu unaeleza ni maagizo gani ya CSP ambayo CMP kwa kawaida inahitaji, jinsi nonce zinavyoingiliana na uingizaji wa hati, na jinsi ya kuzindua mabadiliko bila kuvunja bango lako.

Kile CMP Kwa Kawaida Inachohitaji kutoka kwa CSP

Mahitaji kamili hutegemea muuzaji, kwa hivyo anza daima na nyaraka za CMP yako mwenyewe. Kwa ujumla, kagua maagizo haya:

Kwenye tovuti za TCF, kumbuka kwamba CMP pia huunda fremu ya kutafuta iitwayo __tcfapiLocator kwenye ukurasa. Fremu hiyo huundwa bila chanzo cha mbali, kwa hivyo kwa kawaida haihitaji kiingilio cha frame-src, lakini inafaa kuthibitishwa wakati wa majaribio.

Tatizo la Stub ya Ndani ya Mstari

CMP nyingi hukuomba uweke hati ndogo ya ndani ya mstari — stub — kwenye kichwa cha ukurasa, ili hati nyingine ziweze kuweka miito kwenye foleni kabla CMP kuu haijapakiwa. CSP kali huzuia hati za ndani ya mstari isipokuwa uziruhusu waziwazi. Una chaguo tatu:

  1. Nonce. Tengeneza thamani nasibu kwa kila jibu, iongeze kwenye kichwa cha CSP kama 'nonce-...' na kwenye lebo ya <script> ya stub. Hiki ndicho chaguo linalobadilika zaidi kwa kurasa zinazobadilika.
  2. Hash. Ongeza hash ya SHA-256 ya yaliyomo kamili ya stub kwenye script-src. Hii inafanya kazi vizuri kwa tovuti tuli, lakini mabadiliko yoyote ya stub, hata nafasi tupu, huivunja.
  3. Kuiweka stub kwenye seva yako kama faili ya nje kwenye kikoa chako mwenyewe, inayofunikwa na 'self'. Hii inahitaji uangalifu ili iendelee kupakia mapema vya kutosha.

Epuka 'unsafe-inline' kama njia ya mkato. Inaruhusu kila hati ya ndani ya mstari, jambo linaloondoa sehemu kubwa ya ulinzi ambao CSP hutoa.

Nonce na Hati Ambazo CMP Inaziingiza

CMP inayozuia hati hadi idhini mara nyingi hufanya kazi kwa kuzishikilia na kuziingiza baadaye. Chini ya CSP inayotegemea nonce, hati hizo zilizoingizwa pia zinahitaji kuruhusiwa. Kuna mbinu mbili za kawaida:

Wasimamizi wa lebo huibua swali lilelile. Ikiwa unapakia lebo za matangazo na uchanganuzi kupitia msimamizi wa lebo, fuata nyaraka zake kuhusu nonce na uhakikishe CMP na msimamizi wa lebo vinatumia mbinu thabiti.

Lebo za Matangazo Hufanya CSP Kuwa Ngumu Zaidi

Matangazo ya kiprogramu hupakia hati na fremu kutoka vikoa vingi, na orodha hubadilika washirika wa mahitaji wanapobadilika. Wachapishaji kwa kawaida hufanya mojawapo ya chaguo mbili:

Vyovyote vile, CMP inapaswa kuwa kwenye orodha ya kuruhusiwa waziwazi, si kufunikwa na kadi-mwitu pekee, ili badiliko la CSP lisizime bango kimya kimya.

Zindua kwa Hali ya Report-Only

Tumia kichwa cha Content-Security-Policy-Report-Only kwanza. Kivinjari huripoti ukiukaji bila kuzuia chochote, ili uweze kuona sera mpya ingevunja nini.

  1. Weka sera katika hali ya report-only pamoja na kituo cha kuripoti.
  2. Pakia kurasa katika wasifu safi wa kivinjari na upitie mtiririko mzima wa idhini: ziara ya kwanza, kubali yote, kataa yote, chaguo maalum, kuondoa idhini.
  3. Kagua ripoti za ukiukaji na koni ya kivinjari kwa rasilimali za CMP zilizozuiwa.
  4. Rekebisha sera, kisha ubadilishe kwenda utekelezaji.
  5. Endelea kuwasha kuripoti baada ya utekelezaji ili kunasa kurudi nyuma.

Dalili za Mgongano wa CSP

Mambo Muhimu ya Kukumbuka

← Blogu Soma Zote →