zdjęcie Autora

12 maja 2020

Wojciech Jóźwiak

z cyklu: Auto-promo Taraki 5 (odcinków: 25)

Pamięć domowa przeglądarek

Kategoria: Projekt Taraka
Tematy/tagi: informatykaInternet

« Usuwajmy fbclidy

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.

Auto-promo Taraki 5: wstęp na końcu

Ciąg dalszy autopromocji Taraki i podobnych spraw.

Korekta przez: Wojciech Jóźwiak (2020-05-15)



« Usuwajmy fbclidy

komentarze

1. nie do końca na temat. • autor: And21022020-05-12 18:12:54

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. Szufladka • autor: Wojciech Jóźwiak2020-05-12 20:23:49

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... • autor: Krabat2020-05-13 18:27:57

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

https://en.wikipedia.org/wiki/Web_storage
[foto]

4. Web Storage • autor: Wojciech Jóźwiak2020-05-13 21:43:57

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... • autor: Wojciech Jóźwiak2020-05-13 22:24:59

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 nawet • autor: Wojciech Jóźwiak2020-05-13 22:33:57

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... • autor: Krabat2020-05-14 15:24:45

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ę • autor: Wojciech Jóźwiak2020-05-14 15:29:27

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... • autor: Krabat2020-05-14 15:33:01

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 Docs • autor: Wojciech Jóźwiak2020-05-14 17:23:24

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ć • autor: And21022020-05-14 22:19:05

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... • autor: Krabat2020-05-16 22:14:55

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).

Zaloguj się - aby napisać komentarz   Rejestracja - jeśli nie masz konta w Tarace

x

Szybki przegląd Taraki

[X] Logowanie:

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

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