Kalo te përmbajtja
SEO Analyzer

Siguri

Koka Permissions-Policy

Çaktivizon veçori të shfletuesit që faqja nuk i përdor — kamerën, mikrofonin, gjeolokacionin.

Çfarë është

Permissions-Policy përcakton cilat veçori të shfletuesit mund të përdorë faqja dhe kornizat brenda saj: kamera, mikrofoni, gjeolokacioni, sensorët e lëvizjes, pagesat, ekrani i plotë.

Ajo quhej më parë Feature-Policy; emri ndryshoi bashkë me sintaksën.

Parimi është zvogëlimi i sipërfaqes. Nëse faqja jote nuk e përdor kurrë kamerën, mbyllja e saj nuk kushton asgjë dhe heq një rrugë të mundshme keqpërdorimi — veçanërisht nga skriptet e palëve të treta dhe nga kornizat e futura.

Pse ka rëndësi

Rreziku kryesor nuk vjen nga kodi yt por nga kodi i huaj që xhiron brenda faqes sate: një bibliotekë e komprometuar, një reklamë, një widget i një partneri.

Pa këtë kokë, secili prej tyre mund të kërkojë akses te kamera ose te vendndodhja. Përdoruesi sheh një kërkesë leje që duket sikur vjen nga sajti yt — sepse teknikisht vjen prej tij — dhe shpesh e jep.

Me politikën e duhur, kërkesa nuk bëhet dot fare: shfletuesi e refuzon para se përdoruesi të pyetet.

Ka edhe një përfitim praktik për besueshmërinë: një sajt që deklaron shprehimisht se nuk përdor kamerë dhe mikrofon jep një sinjal të verifikueshëm, jo vetëm një premtim në faqen e privatësisë.

Për faqe publike pa veçori të tilla, kjo është ndërhyrje me kosto zero.

Si rregullohet

# mbyll gjithçka që nuk përdor
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=()

# lejo vetëm vetveten për një veçori që e përdor
Permissions-Policy: geolocation=(self)

# lejo edhe një partner të caktuar
Permissions-Policy: camera=(self "https://partner.com")

Hapat:

  • Nis nga mohimi i gjithçkaje dhe hap vetëm atë që përdor.
  • `()` do të thotë askush, (self) vetëm ky origjinal.
  • Për kornizat e futura, shto edhe atributin allow te <iframe>.
  • Testo pas vendosjes: nëse një veçori ndalon së punuari, politika është më e rreptë se nevoja.
  • Kujdes me sintaksën — ajo ndryshon nga Feature-Policy e vjetër dhe një gabim e bën kokën të shpërfillet në heshtje.

Si e mat ky mjet

SecurityAnalyzer::checkSecurityHeaders() (services/SecurityAnalyzer.php:90) kalon nëpër një tabelë me gjashtë koka (:92–99). Rreshti për këtë kokë është services/SecurityAnalyzer.php:98.

Për secilën kontrollohet vetëm nëse çelësi permissions-policy ekziston te kokat e përgjigjes dhe nuk është bosh (:103). Kur ekziston, jepet konstatim i kaluar me vlerën e plotë të kokës (:105); kur mungon, jepet konstatim me tekstin e ndreqjes (:109).

Kjo kokë është në grupin e lehtë: mungesa e saj jep konstatim informativ me ndikim mesatar (services/SecurityAnalyzer.php:107).

Çfarë NUK e mat

Kontrolli mat praninë e kokës, jo vlerën e saj. Çdo vlerë, sado e dobët ose e pakuptimtë, kalon si e rregullt — kjo është kufizimi kryesor dhe vlen për të gjashtë kokat e sigurisë.

Për këtë kokë kufizimi është pothuajse i plotë: një politikë që i lejon të gjitha veçoritë raportohet njësoj si një që i mbyll të gjitha. Vlera nuk lexohet fare.

Nuk zbulohet as Feature-Policy, emri i vjetër i së njëjtës kokë, që disa sajte e kanë ende — ato raportohen si pa politikë.

Asnjë gabim sintaksor nuk kapet, ndonëse një kokë me sintaksë të gabuar shpërfillet plotësisht nga shfletuesi dhe nuk jep asnjë mbrojtje.

Atributet allow te <iframe>-t brenda faqes nuk kontrollohen.

Kodi që e kryen matjen

  • services/SecurityAnalyzer.php:90SecurityAnalyzer::checkSecurityHeaders
  • services/SecurityAnalyzer.php:98permissions-policy

Standardi