Content Security Policy и ваш CMP: како да CSP и сагласност раде заједно

Два безбедносна слоја који морају да се слажу

Content Security Policy (CSP) каже прегледачу из којих извора страница сме да учитава скрипте, стилове, слике, оквире и мрежне захтеве. Платформа за управљање сагласношћу ради супротан посао: одлучује које од тих скрипти смеју да се изврше на основу избора корисника. Када се ова два подешавају одвојено, сударају се. CMP се не учита јер га CSP блокира, или се CSP толико олабави да би прихватио CMP и оглашивачке тагове да више ништа не штити.

Овај водич објашњава које CSP директиве CMP обично захтева, како nonce-ови ступају у интеракцију са убацивањем скрипти и како увести промене а да се банер не поквари.

Шта CMP обично тражи од CSP-а

Тачни захтеви зависе од добављача, зато увек почните од документације свог CMP-а. Уопштено, проверите ове директиве:

На TCF сајтовима, имајте на уму да CMP на страници креира и оквир локатор под именом __tcfapiLocator. Тај оквир се креира без удаљеног извора, па обично не захтева унос у frame-src, али вреди потврдити у тестирању.

Проблем inline stub-а

Већина CMP-ова тражи да у head странице поставите мали inline скрипт — stub — како би друге скрипте могле да стављају позиве у ред пре него што се учита главни CMP. Строга CSP блокира inline скрипте осим ако их изричито не дозволите. Имате три опције:

  1. Nonce. Генеришите насумичну вредност по одговору, додајте је у CSP заглавље као 'nonce-...' и у <script> таг stub-а. Ово је најфлексибилнија опција за динамичке странице.
  2. Хеш. Додајте SHA-256 хеш тачног садржаја stub-а у script-src. Ово добро функционише за статичке сајтове, али свака промена stub-а, чак и размака, прекида га.
  3. Самостално хостовање stub-а као спољне датотеке на вашем домену, покривене са 'self'. Ово захтева пажњу да се учитава довољно рано.

Избегавајте 'unsafe-inline' као пречицу. Он дозвољава сваки inline скрипт, чиме се уклања велики део заштите коју CSP пружа.

Nonce-ови и скрипте које CMP убацује

CMP који блокира скрипте до давања сагласности често ради тако што их задржава и касније убацује. Под CSP-ом заснованим на nonce-у, и те убачене скрипте морају бити дозвољене. Постоје два уобичајена приступа:

Менаџери тагова постављају исто питање. Ако оглашивачке и аналитичке тагове учитавате преко менаџера тагова, следите његову документацију о nonce-овима и побрините се да CMP и менаџер тагова користе доследан приступ.

Оглашивачки тагови отежавају CSP

Програматско оглашавање учитава скрипте и оквире са многих домена, а листа се мења како се мењају партнери за потражњу. Издавачи обично бирају једно од два:

У оба случаја CMP треба да буде на изричитој листи дозвољених, а не покривен само џокером, да промена CSP-а никада нечујно не онемогући банер.

Уводите са report-only режимом

Прво користите заглавље Content-Security-Policy-Report-Only. Прегледач пријављује прекршаје а ништа не блокира, па можете видети шта би нова политика покварила.

  1. Поставите политику у report-only режиму са крајњом тачком за извештавање.
  2. Учитајте странице у чистим профилима прегледача и прођите цео ток сагласности: прва посета, прихвати све, одбиј све, прилагођен избор, повлачење.
  3. Прегледајте извештаје о прекршајима и конзолу прегледача због блокираних CMP ресурса.
  4. Прилагодите политику, па пређите на спровођење.
  5. Задржите извештавање укључено и након спровођења да бисте ухватили регресије.

Симптоми сукоба са CSP-ом

Кључни закључци

← Blog Прочитај све →