Forum » Izdelava spletišč » Content-Security-Policy problem
Content-Security-Policy problem
poweroff ::
Na spletišču, ki ga poganja Nginx imam nastavljeno serviranje naslednjih security headerjev:
Vsaj JavaScript koda, fonti, CSS-ji, skratka VSE se nahaja izključno na tem spletišču in nič se ne kliče od zunaj.
Ko zadevo prikažem v Firefoxu pa mi v konzoli javi:
Kritična (zame) sta style-src in script-src.
Če prav razumem zadeve, bi script-src 'self' moralo zadostovati. Ampak če dam ali 'self' ali https://infosec-seminar.si/, mi v obeh primerih konzila javi isto.
Druga stvar je pa da bi se rad znebil tudi 'unsafe-inline' pri style-src...
Kakšna ideja kako to rešit?
add_header Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src https://infosec-seminar.si/; img-src 'self'; connect-src 'self'; font-src 'self' data:; frame-src 'self'; manifest-src 'self'; object-src 'self'; worker-src 'self'; media-src 'self'" always;
Vsaj JavaScript koda, fonti, CSS-ji, skratka VSE se nahaja izključno na tem spletišču in nič se ne kliče od zunaj.
Ko zadevo prikažem v Firefoxu pa mi v konzoli javi:
Content Security Policy: Nastavitve strani ne dovolijo nalaganja vira na self ("script-src https://infosec-seminar.si/"). Source: (function (ERROR) { const V8_STACK_.... Content Security Policy: Nastavitve strani ne dovolijo nalaganja vira na self ("script-src https://infosec-seminar.si/"). Source: onfocusin attribute on DIV element.
Kritična (zame) sta style-src in script-src.
Če prav razumem zadeve, bi script-src 'self' moralo zadostovati. Ampak če dam ali 'self' ali https://infosec-seminar.si/, mi v obeh primerih konzila javi isto.
Druga stvar je pa da bi se rad znebil tudi 'unsafe-inline' pri style-src...
Kakšna ideja kako to rešit?
sudo poweroff
HotBurek ::
FF ESR 52
Prvi error: Content Security Policy: Directive 'frame-src' has been deprecated. Please use directive 'child-src' instead.
Drugi error: Content Security Policy: Couldn't process unknown directive 'worker-src'
Za JS error pa je bila solucija tole: 'unsafe-inline'
Do errorja pride naprimer zaradi onclick (stestirano):
Tuto kompleto da ni errorjev:
Prvi error: Content Security Policy: Directive 'frame-src' has been deprecated. Please use directive 'child-src' instead.
Drugi error: Content Security Policy: Couldn't process unknown directive 'worker-src'
Za JS error pa je bila solucija tole: 'unsafe-inline'
Do errorja pride naprimer zaradi onclick (stestirano):
<button onclick="check();">Check</button>
Tuto kompleto da ni errorjev:
style-src 'self' 'unsafe-inline';
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
poweroff ::
Hmm, kako pa se znebim tega, da bi moral uporabiti 'unsafe-inline'?
Mislim, načeloma znotraj templatov povsod uporabljam
Če prav razumem, 'unsafe-inline' pomeni, da se nekje kliče JS koda direktno in ne preko script-src?
No, zdaj sem nastavil takole:
...in errorjev ni več, razen enega, in sicer:
Kaj to pomeni?
Ta skripta se mi pojavi v templatu samo dvakrat:
Mislim, načeloma znotraj templatov povsod uporabljam
<script src="/skripta.js"></script>
Če prav razumem, 'unsafe-inline' pomeni, da se nekje kliče JS koda direktno in ne preko script-src?
No, zdaj sem nastavil takole:
style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline';
...in errorjev ni več, razen enega, in sicer:
Nalaganje za <script> z virom "https://infosec-seminar.si/assets/jquery.min.js" ni uspelo.
Kaj to pomeni?
Ta skripta se mi pojavi v templatu samo dvakrat:
grep -r 'jquery.min.js' * _layouts/default.html: <script src="/assets/jquery.min.js"></script> _site/index.html: <script src="/assets/jquery.min.js"></script>
sudo poweroff
HotBurek ::
Ugibam, da se problema z unsafe-inline rešiš tako, da v JS ob "load done" dodaš event listenerje, v HTML elementih pa vse odstraniš.
Sam je čudno, ker nikjer na strani ne najdem onclick (ali kaj temu podobnega) za kak HTML element...
Glede ostalih napak. Tole mi pokaže v FF (samo CSS errorje):
Error in parsing value for 'perspective'. Declaration dropped. ;
Unknown property '-moz-osx-font-smoothing'. Declaration dropped. style.css:325:26
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:342:453
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:343:24
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:344:24
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:345:29
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:346:27
Za source kodo (HTML) pa za tag {/p} na koncu 92 vrstice javlja No "p" element in scope but a "p" end tag seen.
Tistih errorjev od prej pa ni več.
document.addEventListener('DOMContentLoaded', function() { // https://www.w3schools.com/jsref/met_element_addeventlistener.asp });
Sam je čudno, ker nikjer na strani ne najdem onclick (ali kaj temu podobnega) za kak HTML element...
Glede ostalih napak. Tole mi pokaže v FF (samo CSS errorje):
Error in parsing value for 'perspective'. Declaration dropped. ;
Unknown property '-moz-osx-font-smoothing'. Declaration dropped. style.css:325:26
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:342:453
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:343:24
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:344:24
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:345:29
Expected 'none', URL, or filter function but found 'progid'. Error in parsing value for 'filter'. Declaration dropped. style.css:346:27
Za source kodo (HTML) pa za tag {/p} na koncu 92 vrstice javlja No "p" element in scope but a "p" end tag seen.
Tistih errorjev od prej pa ni več.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
HotBurek ::
A input filtriraš? :)
https:// infosec-seminar.si /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--++++!!!---@@@~~~###$$$%%%***
Tole vrne normalno http 200 nazaj.
https:// infosec-seminar.si /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;--++++!!!---@@@~~~###$$$%%%***
Tole vrne normalno http 200 nazaj.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Zgodovina sprememb…
- spremenilo: HotBurek ()
poweroff ::
Static HTML je. Jekyll ga generira lokalno potem ga rsyncnem gor. Ni nobenega PHPja ali česarkoli drugega gor...
sudo poweroff
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Javascript DOM based XSS vulnerabilityOddelek: Programiranje | 2750 (2172) | MrStein |
» | Inline JS v HTML; varnost, XSS, ...Oddelek: Programiranje | 1721 (1329) | MrStein |
» | jquery in div-i (strani: 1 2 )Oddelek: Izdelava spletišč | 11123 (9861) | lisjak |
» | css menu v IEOddelek: Izdelava spletišč | 1204 (982) | pitagora |
» | Java ne delaOddelek: Pomoč in nasveti | 1463 (1317) | farko |