astroklient: własna nazwa produktu zamiast odziedziczonej po rdzeniu #85
Reference in New Issue
Block a user
Delete Branch "fix/nazwa-produktu"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Astroklient przedstawiał się na stronie głównej jako „astrololo" — w tytule karty i w nagłówku.
To najpoważniejszy z możliwych śladów. Mówi klientowi wprost, że trzyma okrojoną wersję czegoś większego, i podaje frazę, po której da się wyszukać, czego mu nie dano. Cała reszta izolacji przestaje mieć znaczenie, gdy produkt sam się przedstawia nazwą rodzica.
astrodemo nie było dotknięte — ma własne kopie szablonów i pokazuje „astrodemo". Sprawdziłem, bo pytałeś.
Skąd się wzięło
Nazwa była wpisana na sztywno w szablony, a szablony są wspólne — dokładnie ta sama przyczyna, co przy zaszytym w
base.htmlwarunku na administratora. Mieszka teraz w moduleprodukt.py, który nakładka produktu nadpisuje; szablony o nią pytają, zamiast ją znać.Drugie źródło, mniej oczywiste
Nazwa siedziała też w identyfikatorach JavaScriptu, które widzi każdy, kto otworzy narzędzia deweloperskie:
astrololo:coordsastrololo.form.v1wlocalStoragePrzemianowane na neutralne
kosmogram:*. Te identyfikatory nie mają powodu nosić nazwy rodziny produktów.⚠️ Skutek uboczny: zmiana klucza w
localStoragekasuje raz zapamiętane wersje robocze formularza. Jednorazowo, u wszystkich.Sprawdzone, że NIE wyciekają
X-Astrololo-*/docs,/openapi.json,/redoc→ 404, także zalogowanemuTest rozdziela dwie rzeczy
Nazwie rdzenia wolno występować w identyfikatorach wewnętrznych (loggery, materiał do wyprowadzania kluczy, nagłówki międzywarstwowe) i nie wolno w szablonach, zasobach ani w treści odpowiedzi.
Zakaz na wszystko byłby albo obejściem przez zmianę nazw kluczy kryptograficznych, albo martwą regułą wyłączaną przy pierwszej okazji.
Sprawdzony w obie strony: po cofnięciu nakładki test pada.
Testy: astroklient 15 · presentation 368 · astrodemo 28 · logic 342 · data 42 · render 41.