zdjęcie Autora

12 maja 2020

Wojciech Jóźwiak

Serial: Auto-promo Taraki 5
Pamięć domowa przeglądarek
! Do not copy for AI. Nie kopiować dla AI.

Kategoria: Projekt Taraka
Tematy/tagi: informatykaInternet

◀ Usuwajmy fbclidy ◀ ►

Przeglądarki używają miejsca na dysku lokalnego komputera, ale ta pamięć jest oddzielną prowincją, odseparowaną od reszty przestrzeni dysku. To sprawia problemy. Czy można je rozwiązać?

Czegoś nie wiem z informatyki. Piszę, żeby się dowiedzieć, bo pewnie Ktoś wie. O co chodzi? Sieć-internet działa tak, że są serwery i są urządzenia lokalne. Czyli masz komputer: stacjonarny lub przenośny laptop, albo tablet, albo telefon mobilny. W lokalnym sprzęcie masz program pracujący w sieci czyli przeglądarkę. (Takich programów – ich rodzajów – jest więcej, nie tylko przeglądarki, ale uprośćmy sprawę do samych przeglądarek.) Co robi przeglądarka? Żąda pewnej porcji treści od serwera i tę treść dostaje (lub czasem nie dostaje, wtedy widzisz „error”), po czym, przeważnie, tę treść, po odpowiednim uzdatnieniu-wizualizacji wyświetla na ekranie. Żeby tak się stało, przeglądarka używa mocy przerobowej komputera, na którym działa, czyli używa procesora i pamięci dyskowej.

W czym problem? W tym, że chociaż przeglądarki używają „twojej” pamięci, tzn. miejsca na dysku twojego (lokalnego) komputera, to ta pamięć, której używają i do której mają dostęp, jest oddzielną prowincją, odseparowaną od reszty przestrzeni dysku. Pewna część dysku zostaje wydzielona przez system operacyjny (Windows, Linux, Android...) do wyłącznego użycia przez przeglądarkę.

Teraz sprawdzam i moja Mozilla Firefox informuje: „Przechowywane ciasteczka, dane i pamięć podręczna stron zajmują 735 MB na dysku.” To jest właśnie ta jej pamięć własna lub przestrzeń własna. (Chwilowo niewiele zajmuje miejsca, jak widać.)

Wyłączność (izolacja) własnej przestrzeni przeglądarki przejawia się tak, że przeglądarce nie wolno zapisywać czegokolwiek poza tą przestrzenią. Nie jest tak, że założysz sobie na dysku katalog pod nazwa „Wiadomości_z_przeglądarki” i tam przeglądarka będzie zapisywać jakieś pliki. Jest nawet „gorzej”, gdyż w językach programowania służących do sterowania przeglądarkami nie masz funkcji, które by to robiły. Nie ma takiej funkcji w JavaScripcie. Nie ma takiej funkcji w PHP. (Niewiedzącym wyjaśniam: JavaScript programuje stronę, która już jest w przeglądarce; PHP działa na serwerze i programuje robienie stron, które na żądanie z przeglądarki są do niej wysyłane przez serwer. Są też inne języki, które to robią.)

Oczywiście, przeglądarka zapisuje i trzyma coś w pamięci (tej własnej, lokalnej, na dysku twojego komputera) i z tej pamięci pobiera – ale to, co z tą pamięcią robi, to jej najprywatniejsza sprawa. Nie jest tak, że przeglądarka manipuluje plikami, które ty być widział i miał dostępne przez swój „Eksplorator” lub „Total Commander”. (Czy ktoś jeszcze używa tego drugiego?) Przeglądarka nie „widzi” ani nie „porusza” plikami w pamięci widocznej i dostępnej dla ciebie (jako ludzkiego użytkownika), jak i vice versa, ty jako ludzki użytkownik nie masz dostępu ani wpływu na zawartość pamięci przeglądarki.

Oczywiście, są w menu przeglądarki opcje „otwórz plik” i „zapisz stronę”, ale jak te napisy wskazują, możesz przy ich pomocy użyć przeglądarki do dwóch ściśle reglamentowanych czynności: do otwarcia w jej oknie pliku, który przeglądarka uzna za „swój” (tzn. będący stroną HTML lub tekstem TXT) lub do zrzucenia na ogólnodostępną część pamięci strony, którą ma na ekranie.

Ani przy pomocy powyższych opcji ani przy pomocy funkcji JavaScriptu nie zapiszesz w „swojej” (dostępnej dla ciebie, ludzkiego użytkownika) niczego więcej.

Ta separacja pamięci, oddzielenie własnej pamięci przeglądarki od pamięci ludzko-dostępnej, została przyjęta przez producentów oprogramowania jako zasada. Dzięki temu nie jest możliwe, a przynajmniej jest bardzo ograniczone zawłaszczenie komputerów (tych lokalnych) przez „siły” działające w Sieci. Gdyby tego nie było, pierwszy lepszy haker lub nawet legalnie działająca firma zająłby cały twój komputer (lub telefon) do swoich celów.

Ale na skutek tej zasady separacji, sieć – rozumiana jako pewien zewnętrzny i światowy informatyczny ekosystem – wnika do twojego komputera tylko częściowo. Wnika tylko do tej odseparowanej „zatoki”, do której ma dostęp i którą kontroluje przeglądarka.

Czy jest w tym coś złego? Coś, co by mnie/nam przeszkadzało, uniemożliwiało jakieś komputerowo-sieciowe czynności?

Tak. Jest. Powyższy mechanizm (wydzielenie i odseparowanie „przeglądarkowej zatoki” z przestrzeni twojego komputera) wymusza powierzanie twoich informacji serwerowi. W tym także wymusza wysyłanie w Sieć czegoś, co mógłbyś uważać za „prywatne” i wrażliwe.

Widać to na moim wycinku informatyki astrologicznej i tarotowej. Informacje, które „chodzą” w astrologii i w wyroczniach (np. tych tarotowych) są często wybitnie poufne. Nie muszę tego wyjaśniać. Ale jeśli są przetwarzane przez aplikację, która działa w przeglądarce, to muszą iść na serwer. Pracuję teraz nad programem do wróżenia z tarota. Na początku wróżby klient-użytkownik komputera (czyli „ty”) zadaje pytanie i to pytanie wpisuje do odpowiedniego formularza na stronie, po czym wybiera karty i klika na przycisk „odczytaj rozkład kart” – i tym klikiem wysyła tę informację na serwer, który „czyta” karty, tzn. przyporządkowuje im odpowiedzi-znaczenia i zwrotnie wysyła do przeglądarki.

Problem w tym, że pytania, które jak powiedziałem wyżej, są typowo wybitnie poufne i osobiste, wędrują gdzieś w świat. Chodzą i są storowane po jakichś chmurach, których używają serwery w serwerowych firmach.

Oczywiście, można olać ten problem. I przeważnie jest on olewany. Wiadomo, nie takie rzeczy z naszych osobistych żyć, doświadczeń i poufności są beztrosko zrzucane przez nas do Sieci. Na handlu statystykami tych treści wyrosły mega-fortuny. Wiemy.

Ale tam, gdzie w grę wchodzi magia (jak np. w przypadku tarotowych wróżb) to pojawia się obiekcja, opór. Czujemy, intuicja nam podpowiada, że byłoby lepiej, gdyby poufne zwierzenia nie wychodziły poza nasz dom. Nie wychodziły poza mój komputer.

Jak ten problem rozwiązać?

Tu od razu mówię, jakie rozwiązanie znam (teoretycznie). Po pierwsze, wróżby (jak i inne, te bardziej „świeckie” informacje), które idą do serwera i tam są przechowywane w bazie danych, można szyfrować. (Co z punktu widzenia magii niczego nie zmienia, bo informacja czy dodatkowo szyfrowana, czy nie, zawiera wciąż tę samą treść, a właśnie wysyłania tej treści w świat chcemy uniknąć.)

Po drugie, wiem, że były próby wprowadzenia w JavaScripcie funkcji obsługujących pamięć lokalną, czyli deponujących pewne kawałki informacji we własnej pamięci przeglądarki. (Nie chcę wchodzić w szczegóły, bo to by nadmiernie rozdęło ten tekst.) Wśród tych funkcji miały być takie, które tworzą lokalne bazy danych. Jak się wydaje, te funkcje lokalnego deponowania (lub lokalnego storowania) nie weszły do podstawowego zasobu JavaScriptu. Niezależnie od powyższego, to rozwiązanie ma podstawowa wadę: własną (lokalną) pamięć przeglądarki łatwo jest zdmuchnąć, wykasować – choćby używając przycisku „Wyczyść dane..” w Opcjach przeglądarki. Tymczasem nam zależałoby na tym, żeby dane w lokalnej pamięci przeglądarki były tak samo stabilne jak pliki dostępne przez Eksplorator.

Być może opisane wyżej problemy są (dawno już...) rozwiązane – lub są problemami pozornymi, których faktycznie nie ma, a tylko ja nie znam rozwiązań lub faktycznego stanu rzeczy.

Być może jest tak, ponieważ nie znam nazwy – nie znam odpowiedniej terminologii, która używana jest w instrukcjach i w dyskusjach. (W informatyce, w programowaniu itp., jest jak w magii: tam, żeby poradzić sobie z demonem, trzeba znać jego prawdziwe imię. W komputerologii trzeba znać właściwe nazwy, terminy.)

Podsumuję, czego szukam. Robię aplikację do wróżenia kartami tarota (lub do innego „wróżenia”, lub do gromadzenia horoskopów znajomych, lub do pisania zwykłego pamiętnika – bo to jest kłopot nie tylko dotyczący wróżenia!); ta aplikacja działa w przeglądarce, korzysta z serwera i używa PHP i JavaScriptu. Od razu wyjaśniam, dlaczego ta aplikacja nie będzie samodzielnym programem .exe – ponieważ nikt go nie ściągnie ani zainstaluje: tzn. ściągnie i zainstaluje może ledwie 1/1000 osób w porównaniu z tymi, którzy wejdą na stronę-aplikację w sieci dostępną dla przeglądarki. Po drugie, programy .exe trzeba robić osobno dla różnych systemów (Windows, Linux itd.), podczas gdy przeglądarki są na system nieczułe.

I ta aplikacja – wróżebna lub pamiętnikowa, w każdym razie przetwarzająca poufne treści – powinna deponować (storować), czyli zapamiętywać i odczytywać informacje w tej przestrzeni dysku, która jest dostępna dla ludzkiego użytkownika. Może też robić to we własnej przestrzeni przeglądarki, ale wtedy ten zapis musiałby być chroniony przed głupim zdmuchnięciem.

Nazwałem to w tytule problemem pamięci domowej przeglądarek.

Będę wdzięczny za wszelkie podpowiedzi, wskazówki i sugestie.

◀ Usuwajmy fbclidy ◀ ►


Komentarze

1. nie do końca na temat.and2102 • 2020-05-12

Z tym brakiem kompatybilności miedzy systemami windowsowymi i linuxami.... Musiałem się z tym uporać  by korzystać z bardzo starego programu  Mandala do kosmogramów. Rozwiązanie okazał  się bardzo proste. Zainstalowałem program
DOSBOX na linuxa i wystarczy  ikonę mdl.exe rzucić na ikonę dosbox aby stara mandala włączyła się w oknie dosowym. Potem alt + enter i mamy cały ekran. Problem z uruchomieniem tej staroci na win 7 też był i też rozwiązał to darmowy dosbox -działa tak samo. teraz jeśli idzie o zbudowanie programu  wróżącego. Można to spróbować rozwiązać "magicznie". Niech użytkownik pisze sobie pytanie ,a program w przeglądarce użytkownika generuje ,ale  jedynie losowy zestaw znaków ten posyła na serwer. Program na serwerze sobie to tam przetrawi albo i nie, albo zinterpretuje jedynie czas otrzymania wywołania (!) i wyśle układ wróżby. Mimo pozornej bezsensowności tego sposobu jestem przekonany ,że wróżby będą udane i to i tak zadziała. Sprawa to "zrozumienia" czym jest wróżba, lub do dalszej dyskusji.
[foto]
2. SzufladkaWojciech Jóźwiak • 2020-05-12

Ideałem w przypadku moich projektów byłby zapis/kronika wróżb, która działa jak szufladka, którą się "wtyka" do aplikacji, po czym "wyjmuje" się ją nie pozostawiając śladów w aplikacji ani w reszcie komputera oraz sieci. Wszystko pozostaje w tej szufladce, która najlepiej żeby była normalnym zwyczajnym plikiem, najlepiej tekstowym.
3. Niezbyt się na...Krabat • 2020-05-13

Niezbyt się na tym znam, ale chyba chodzi o to web storage?

https://en.wikipedia.org/wiki/Web_storage
[foto]
4. Web StorageWojciech Jóźwiak • 2020-05-13

Krabacie, tak i nie. Web storage faktycznie pozwala "storować" paczki informacji na domowym dysku (tzn. w "swoim" komputerze, nie w Sieci) ale wada tego jest taka, że te paczki są na sztywno uwiązane do tej strony w tej przeglądarce. Nie mają tej cudownej ruchomości/przenośności, jaką mają zwykłe pliki.
(Podobnie ograniczoną przenośność mają inne wyposażenia przeglądarki mianowicie zbiory zakładek. Czyli kolekcje-biblioteki cennych linków. Ja z tego powodu muszę trzymać się Mozilli, bo w niej mam tysiące linków, które są sztywno zaszyte w niej.)
-- Albo ja nie mam racji i czegoś nie wiem, i muszę lepiej zbadać zjawisko.
Zaraz coś sprawdzę.

[foto]
5. Sprawdziłem: web storage...Wojciech Jóźwiak • 2020-05-13

Sprawdziłem: web storage zapamiętuje dla swojej przeglądarki. Tzn. dana przeglądarka zapamiętuje dla siebie. Jeśli tę samą strone (*.html) otworzymy w innej przeglądarce, to tamtej zapamiętanej treści nie odtworzymy. Dla innej przeglądarki ona nie istnieje. Porcja informacji w web storage nie jest przenośna, w tym sensie, że nie istnieje niezależnie od przeglądarki, która ja zapisała.
Bariera płód-łożysko jednak działa!
Świat danej przeglądarki jest wyspą izolowaną od reszty komputera.
[foto]
6. Jest gorzej nawetWojciech Jóźwiak • 2020-05-13

Zrobiłem stronę HTML w której zamieściłem skrypt zapamiętujący i odtwarzający metodami Web Storage.
Tamtą stronę przeniosłem do innego dysku.
I co? Nie można odtworzyć tego, co zapisałem w poprzedniej lokalizacji.
Czyli jeszcze strona musi "siedzieć" pod stałym adresem na dysku. (Lub, zapewne, pod niezmienionym adresem w sieci -- tego nie sprawdzałem.)
Bardzo bardzo niedoskonały sposób.
Bariera płód-łożysko! -- Internetowy płód nie pozwala zmieszać się z łożyskiem macierzystego komputera.
7. A gdyby tak...Krabat • 2020-05-14

A gdyby tak zaimplementować eksport "czytań" do pliku np. xml? Użytkownik mógłby sobie zapisywać w dowolnie wybranym miejscu.
[foto]
8. Eksport plików przez przegladarkęWojciech Jóźwiak • 2020-05-14

Wydaje mi się, że przeglądarki nie mają mocy, żeby wytworzoną przez siebie porcję informacji zapisac jako plik -- plik dostępny i czytalny dla użytkownika systemu.
9. Istnieje wiele aplikacji...Krabat • 2020-05-14

Istnieje wiele aplikacji działających w przeglądarkach, które potrafią importować/eksportować pliki w różnych formatach (na przykład Google Docs).
[foto]
10. Google DocsWojciech Jóźwiak • 2020-05-14

Ale aplikacja Google Docs tworzy własne pliki, lub raczej pseudo-pliki, które nie są plikami dla systemu (Windows) tylko są gdzieś zaszyte w danych przeglądarki lub w jakichś innych "tajnych wnętrznościach". Nie można ich znaleźć, wyjąć, przenieść ani edytować inaczej niż przez Google Docs -- jest to jakby jego (Google Docs) prywatna własność.
Te pliki bądź pseudo-pliki nie mogą być przetwarzane tak jak pliki "zwykłe" czyli "domowe", te przetwarzane przez stacjonarne programy (aplikacje).
Google za pośrednictwem przeglądarek animuje osobne własne środowisko korzystające z naszych komputerów, ale to środowisko należy do "internetowej zatoki" wyodrębnionej z komputera.
Oczywiście, mogę skopiować (^A ^C) dokument Googli i wkleić go programu stacjonarnego -- przed chwilą dla sprawdzenia wkleiłem do OpenOffice -- ale to zrobiłem ja, człowiek, ręcznie, klikając. Sama przeglądarka swoimi środkami, np. JavaScriptem, tego nie zrobi, powtarzam: nie ma takiej mocy.
(Krabacie, jeśli się mylę, to pokaż mi gdzie. Podaj kontrprzykład.)
11. może trzeba mocy ciemnej strony użyćand2102 • 2020-05-14

Skoro wirusy komputerowe kradną  z  naszych przeglądarek "zatok" nasze dane, maile, adresy, wpisywane hasła, czyli sprawa musi być do przeskoczenia. Trzeba tylko  znać "myk" jak to jest robione i to wykorzystać w legalnie stworzonej wtyczce do programu (chyba..). Trzeba szukać u "Kwinty" jak sejf otworzyć, nie u twórcy sejfu.
12. Google Docs (i...Krabat • 2020-05-16

Google Docs (i inne aplikacje webowe) udostępniają dokumenty albo przez interfejs użytkownika (GUI) albo przez API. Ta druga metoda pozwala na dostęp do dokumentów przez inne programy bez ingerencji człowieka (klikania po menu). Przykłady: https://developers.google.com/docs/api

Myślę, że aplikacja wróżebna byłaby w stanie zachowywać dane lokalnie przy pomocy podobnych mechanizmów (https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API).
13. Pobieranie pliku?Tomasz Wasyłyk • 2020-07-16

Jako komputerolog z rangą urzędową in spe i biegły koneser terminów w randze początkującego loremastera (loreczeladnik?), przynaję, że do końca nie jestem pewien, o co miałoby chodzić. Czy jeżeli na przykład, pojawi się okienko pobierania, i użytkownik by sobie kliknął, że ma się zapisać gdzieś tam, to tak nie może być? Czy ręczne torowanie drogi na swój dysk odpada?
Co do robienia plików .exe, to chyba obecnie aplikacje desktopowe się i tak robi jako stronę lokalną, do której dołącza się silnik przeglądarki, żeby ją wyświetlić, albo po prostu daje widok z internetu, ale ja się tam na tym nie znam na tym.
[foto]
14. Jeszcze raz wyjaśniam, gdzie widzę problem z przeglądarkamiWojciech Jóźwiak • 2020-07-18

Przypomnę cała ideę, o której pisałem w tym tekście. Użytkownik ma wrażliwe dane. Konkretnie: jest astrologiem i ma dane do horoskopów swoich znajomych, klientów i momenty  z ich życiorysów. Chce te dane przetwarzać na zdalnym serwerze (np. AstroAkademia) ale nie chce ich tam przechowywać, bo się boi, że się wymkną i upublicznią i ktośkolwiek będzie wiedzieć że pani A urodzona wtedy a wtedy miała upojną noc z panem B urodzonym itd., podczas gdy jego-astrologa obowiązuje tajemnica spowiedzi.
Astrolog (użytkownik) powinien więc mieć możność działania w trybie: (1) przesłać dane na serwer -- (2) przetworzyć i dostać wyniki (np. wykresy horoskopów) -- (3) zapamiętać wyniki u siebie na dysku -- (4) usunąć z serwera.
Ja jako programista potrafię zapewnić użytkownikowi fazy 1, 2 i 4. Fazy 3 -- NIE.
Nie mogę w żadem sposób pomóc użytkownikowi manipulować danymi (które zostały przetworzone przez kanał przeglądarka + serwer) na jego własnym komputerze.[*]
Jest to do tego stopnia niemożliwe, że nawet nie ma ogólnie zrozumiałej terminologii (języka!), która by to opisała. Czego dowodem jest niemożność dogadania się w tej dyskusji.

[*] Dokończenie: Zakładając, że użytkownik nie jest informatykiem i ja nie zaopatruję go w podręcznik, jakie katalogi i pliki powinien sobie przygotować i co w które miejsce przekopiowywać. Zakładam, że te działania -- storowanie wyników na lokalnym dysku -- powinny odbywać się automatycznie i być obsługiwane intuicyjnie.

Mam wrażenie, że daliśmy się schwytać w pułapkę przeglądarka+serwer.

Aby komentować Zaloguj się lub Zarejestruj w Tarace.

Do not feed AI...
Don't copy for AI. Don't feed the AI.
This document may not be used to teach (train or feed) Artificial Intelligence systems nor may it be copied for this purpose. (C) All rights reserved by the Author or Owner, Wojciech Jóźwiak.

Nie kopiować dla AI. Nie karm AI.
Ten dokument nie może być użyty do uczenia (trenowania, karmienia) systemów Sztucznej Inteligencji (SI, AI) ani nie może być kopiowany w tym celu. (C) Wszystkie prawa zastrzeżone przez Autora/właściciela, którym jest Wojciech Jóźwiak.
X Logowanie:

- e-mail jako login
- hasło
Zaloguj
Pomiń   Zapomniałem/am hasła!

Zapisz się (załóż konto w Tarace)