49 lines
2.9 KiB
XML
49 lines
2.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 360" role="img" aria-label="Porównanie powierzchni ataku: CMS z bazą wystawia publicznie aplikację, bazę i pluginy; rozwiązanie statyczne wystawia tylko pliki HTML, a edycja idzie przez git">
|
|
<defs>
|
|
<filter id="soft3" x="-20%" y="-20%" width="140%" height="140%">
|
|
<feDropShadow dx="0" dy="2" stdDeviation="5" flood-color="#00004a" flood-opacity="0.10"/>
|
|
</filter>
|
|
<marker id="arr3" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
<path d="M0 0 L10 5 L0 10 z" fill="#00004a"/>
|
|
</marker>
|
|
<style>
|
|
.t { font-family: Inter, "Segoe UI", Arial, sans-serif; }
|
|
.hd { font-weight: 800; font-size: 14px; fill: #00004a; letter-spacing: .14em; }
|
|
.cap { font-size: 12.5px; fill: #46536a; }
|
|
.item{ font-size: 13px; fill: #101228; }
|
|
.bad { fill: #fdf0f0; stroke: #e8c5c5; stroke-width: 1.5; }
|
|
.good{ fill: #ffffff; stroke: #00004a; stroke-width: 1.5; }
|
|
.flow{ stroke: #00004a; stroke-width: 1.8; fill: none; marker-end: url(#arr3); }
|
|
.lbl { font-size: 12px; fill: #46536a; paint-order: stroke; stroke: #ffffff; stroke-width: 4; }
|
|
</style>
|
|
</defs>
|
|
|
|
<!-- left: classic CMS -->
|
|
<text class="t hd" x="300" y="52" text-anchor="middle">CMS Z BAZĄ DANYCH</text>
|
|
<text class="t item" x="60" y="150">internet</text>
|
|
<path class="flow" d="M130 145 H186"/>
|
|
<g filter="url(#soft3)"><rect class="bad" x="190" y="80" width="360" height="200" rx="16"/></g>
|
|
<text class="t item" x="218" y="126">▪ aplikacja CMS (PHP / Node) — publiczna</text>
|
|
<text class="t item" x="218" y="158">▪ panel logowania — publiczny</text>
|
|
<text class="t item" x="218" y="190">▪ baza danych z treścią</text>
|
|
<text class="t item" x="218" y="222">▪ pluginy i zależności</text>
|
|
<text class="t cap" x="218" y="256" font-weight="700" fill="#8f3b3b">wszystko działa non stop i wymaga patchowania</text>
|
|
|
|
<!-- divider -->
|
|
<line x1="600" y1="60" x2="600" y2="320" stroke="#e2e5ee" stroke-width="1.5"/>
|
|
|
|
<!-- right: static -->
|
|
<text class="t hd" x="900" y="52" text-anchor="middle">TO ROZWIĄZANIE</text>
|
|
<text class="t item" x="646" y="130">internet</text>
|
|
<path class="flow" d="M716 125 H772"/>
|
|
<g filter="url(#soft3)"><rect class="good" x="776" y="88" width="360" height="76" rx="16"/></g>
|
|
<text class="t item" x="804" y="120">▪ pliki HTML — i nic więcej</text>
|
|
<text class="t cap" x="804" y="146">nie ma czego zhakować ani patchować</text>
|
|
|
|
<text class="t item" x="646" y="252">edycja</text>
|
|
<path class="flow" d="M716 247 H772"/>
|
|
<g filter="url(#soft3)"><rect class="good" x="776" y="210" width="360" height="76" rx="16"/></g>
|
|
<text class="t item" x="804" y="242">▪ git (Gitea) — tylko zalogowani</text>
|
|
<text class="t cap" x="804" y="268">poza ścieżką czytelnika — awaria nie kładzie strony</text>
|
|
</svg>
|