Diskuse

Téma: přechod na novou verzi 8.3.x

Ahoj,

předělávám nyní starý web s verzí 7.3.1 na novou 8.3.x a narazil jsem na problém umisťování všeho do adresáře /upload/

Mám s tím problém hlavně u obrázků, protože ve staré verzi se vše (obrázky, dokumenty apod.) mohlo dávat dle potřeby, takže obrázky dali do různých adresářů a některé se tahají i z externí galerie.

Dá se to omezení na adresář /upload/ nějak jednoduše obejít a nebo musím napsat vlastní HCM?

A ještě dotaz či poznámka, proč se stále v některých částech používají tabulky (nemyslím tím nyní administraci). Např. na stránce s článkem je dle mne úplně zbytečně tabulka
<table id="article-info" class="article-footer">
<tbody>
<tr>
<td>
<ul class="article-info">
<li><strong>Autor:</strong> <a href="/sunlight_831_... " class="user-link user-link-1 user-link-group-1"><img src="/sunlight_831_..." title="Hlavní administrátoři" alt="Hlavní administrátoři" class="icon">…</a></li>
<li><strong>Vydáno:</strong>…</li>
<li><strong>Zobrazeno:</strong>…x</li>
<li><strong>ID:</strong> <a href="/sunlight_831_…">535 <img src="/sunlight_831_..." alt="edit" class="icon"></a></li>
</ul>
</td>
</tr>
</tbody>
</table>
stačil by tam <div>

Děkuji za případné rady

Petr
postZaslat odpověď
Ahoj.

Omezení cest na upload/ v HCM modulech nejde snadno obejít (bez zásahu do systému). Přidalo se to kvůli zabezpečení. HCM moduly sice bývají omezené na přípony apod., ale i tak mi přišlo lepší nedovolit tam dát jakoukoliv cestu v celém cms. Cesta nejmenšího odporu je si ten daný HCM okopírovat do pluginu a provést si vlastní validaci podobnou té, kterou dělá Sunlight\Hcm::normalizePathArgument().

Tabulka v článku je z historických důvodů. Pokud se zapne hodnocení článků, tak tam jsou vedle sebe 2 sloupce - info a hodnocení. Pokud je to problém, dá se to nahradit pluginem.
Děkuji za info

Petr
Ahoj,

ještě k té bezpečnosti.

Když jsem zadal adresu mé opravované stránky a pak i tvé stránky "https://sunlight-cms.cz/" do "https://securityheaders.com/", tak to vyhodnotili jako skoro nejhorší, značkou F ;-)

Tak jsem natvrdo vložil do Core.php do fce initEnvironment (nevím tedy jestli to je správně, ale takto jsem to typnul), potřebné příkazy header(...) pro zabezpečení. A tím jsem se dostal na opravovaných stránkách na A ;-)

Ahoj

Petr
Řekl bych že ten securityheaders.com trošku přehání (jelikož se snaží prodat placené služby) 🙂

V základu tyto hlavičky nejsou primárně z historických důvodů - v době vzniku SL neexistovaly a systém se chrání jinýmy způsoby (XSS ochrana, XSRF tokeny, správné nastavení cookies). Ale nějaká budoucí major verze by některé z těch hlaviček přidat mohla.

Pokud tam ty hlavičky chceš, nezasahoval bych do systému, jelikož při aktualizaci o tyto změny přijdeš. Hlavičky tam můžeš dostat přes Header set v .htaccess nebo vlastní extend plugin (dá se to napojit na událost core.ready).
Prvotní nástřel možného řešení pluginem https://github.com/friends-of-sunlight-cms/security-headers-plugin

zatím není release, ještě nevím zda nebudu něco upravovat
"Tak jsem natvrdo vložil do Core.php do fce initEnvironment (nevím tedy jestli to je správně, ale takto jsem to typnul),"
zásahy přímo do systému nejsou správně, i když chápu tvou snahu o řešení


Koukal jsem během psaní pluginu na dokumentaci a různé weby a nikdo to moc nepřehání s aktivací všech. Některé ty hlavičky dokáží ten web odstřelit úplně.

Google, Seznam (C):
Strict-Transport-Security Permissions-Policy X-Frame-Options Content-Security-Policy X-Content-Type-Options Referrer-Policy

Yahoo (B):
X-Frame-Options Referrer-Policy Strict-Transport-Security X-Content-Type-Options Content-Security-Policy Permissions-Policy

Facebook/Instagram (A):
X-Frame-Options Content-Security-Policy Permissions-Policy X-Content-Type-Options Strict-Transport-Security Referrer-Policy

Perplexity (B):
Content-Security-Policy X-Frame-Options Strict-Transport-Security X-Content-Type-Options Referrer-Policy Permissions-Policy

"Největší databáze ničeho" (D):
X-Frame-Options Strict-Transport-Security Content-Security-Policy X-Content-Type-Options Referrer-Policy Permissions-Policy

DuckDuckGo (A):
Strict-Transport-Security Permissions-Policy Content-Security-Policy X-Frame-Options X-Content-Type-Options Referrer-Policy

A teď malá rejpavá... 😂
Microsoft (F):
Strict-Transport-Security Content-Security-Policy X-Frame-Options X-Content-Type-Options Referrer-Policy Permissions-Policy

Mohl bys prosím vyzkoušet ten můj plugin a dát mi nějaký feedback?
Ahoj,

děkuji za vytvoření pluginu. Vypadá to, že to funguje ;-)

Při základním nastavení, to co je rovnou po instalaci, to pak vypadá takto:
img

Po zapnutí skoro všeho, mimo "[STS] zařadit doménu do preload", to pak vypadá takto:
img
img

Osobně ještě nastavuji "X-Powered-by", aby nebylo vidět, na jaké verzi PHP stránky běží. Pak "X-XSS-Protection" a "Arr-Disable-Session-Affinity" a nastavuji "X-Frame-Options: DENY"

Tady posílám i nějaké odkazy, z kterých jsem čerpal:
- testovací stránka
https://csp-evaluator.withgoogle.com/

- info
https://scotthelme.co.uk/hsts-the-missing-link-in-tls/
https://scotthelme.co.uk/hardening-your-http-response-headers/#x-frame-options
https://scotthelme.co.uk/a-new-security-header-referrer-policy/
https://scotthelme.co.uk/goodbye-feature-policy-and-hello-permissions-policy/
https://scotthelme.co.uk/content-security-policy-an-introduction/

https://owasp.org/www-community/controls/Content_Security_Policy
https://www.w3.org/TR/permissions-policy-1/

https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/require-trusted-types-for

Info pro použití těchto hlaviček.
Když jsem si s tím hrál, tak jsem zjistil, že při nekterých přísnějších a přesnějších nastaveních "Content-Security-Policy" přestanou na locale stránky fungovat a na serveru to pak běží ;-) Nebo nefunguje JS volané z HTML tagu apod.

Ještě jednou děkuji za plugin a omlouvám se, že píši až teď. Ale moc často sem nechodím a taky na stará kolena moc nestíhám ;-)

Ahoj

Petr