GET HTTPS4

GET HTTPS wersja 4

Programy do pobierania stron www - sprawdza dostępność serwisów internetowych

Krótka charakterystyka:

  • Pobiera strony z serwera w określonych odstępach czasu
    Wykonywane są dwie czynności tj czyste pobranie HTML - GET oraz pobranie i wyrenderowanie kodu w przeglądarce z uwzględnieniem JavaScript który często zmienia jej zawartość doładowuje moduły itp. Użytkownik może wybrać który kod jest dla niego istotniejszy.
     
  • Renderuje strony w przeglądarce.
    Może także dodatkowo wyświetlać pobrany kod HTML lub wyrenderowany kod HTML.
     
  • Sprawdza rozmiar pobieranych stron z możliwością wprowadzenia odchylenia .
    Np strona po załadowaniu wykonuje skrypt który zwraca różną zawartość i rozmiar się trochę różni.
     
  • Sprawdza czy kolejno pobierane strony są do siebie podobne.
    Z możliwością uwzględnienia tolerancji w % z powodu jak wyżej.
     
  • Dodatkowo może usuwać ze stron znaczniki czasu, sesji itp. powodujące niezgodność pobieranych stron.
     
  • Sprawdza linki ze stron i porównuje je czy są na białej liście.
    Uwzględnia linki, źródła skryptów, stylów itp. Lokalne linki jak np. /about lub #następny są pomijane
     
  • W przypadku błędu odtwarza dźwięk alarmu.
    Gdy błąd nie będzie potwierdzony odtwarzanie będzie się powtarzać co 30 sek. do potwierdzenia.
    W przypadku błędu program skraca czas odstępów pomiędzy pobraniami aby zintensyfikować nadzór.

     

Dodatkowo na zamówienie możemy zaoferować wersję z :

  • Zapisem logów do bazy danych
  • Porównywanie strony ze wzorcem strony a nie pierwszą załadowaną z serwera
  • Alertami wysyłanymi na email /SMS
  • Webowym interfejsem użytkownika
  • i innymi modułami na życzenie klienta.

Osoby zainteresowane programem prosimy o kontakt.
Nie udostępniamy wersji demo tego programu.


Program pobiera strony www i je renderuje w przeglądarce. Przeglądarka jest pełnoprawna na bazie silnika Microsoft EDGE można sobie klikać linki choć z pewną ostrożnością.
Aby nie blokować interfejsu użytkownika program wykonuje wiele procesów w tle i jednoczesne klikanie może mu zakłócić pracę, może wygenerować błędy z analizy strony itp.
Dlatego lepiej nie klikać w stronę za wiele a w szczególności gdy widać napis:

Nie śpieszmy się dajmy wykonać programowi operacje w tle.


Strona główna

Na stronie głównej mamy trzy główne okna:

GET HTTPS główne okno

1. Okno z listą stron do pobrania.
Wyświetlana jest lista stron. Na niebiesko zaznaczona jest aktualnie pobierana strona


Uwaga!!!

Pomimo zaznaczenia na niebiesko np. trzeciej strony okno przeglądarki w trakcie pobierania będzie pokazywać jeszcze poprzednią stronę przez chwilę zanim się ona nie załaduje.
Niebieski kolor jest umowny – zależy od schematu kolorów Windows – kolor wybranego elementu.
Kliknięcie w dowolną stronę spowoduje jej załadowanie.
Uważajmy z klikaniem patrz uwaga na początku.


Kliknięciem prawym klawiszem myszy otworzymy menu kontekstowe.

Menu kontekstowe listy stron

Opcja Wyświetl wszystkie strony w przeglądarce załaduje kolejno wszystkie strony do kart przeglądarki np. Firefox. W zależności od przeglądarki i jej konfiguracji mogą to być karty w jednym oknie lub wiele okien.
Kolejne opcje wyświetlają jedną stronę albo klikniętą albo zaznaczona na niebiesko(aktywną)

Kliknięcie prawym klawiszem myszy nie uaktywnia klikniętej strony tzn nie podświetla jej i nie powoduje jej załadowania.

2. Okno przeglądarki
Wbudowane okno przeglądarki na bazie EDGE. 100% klikalne z uwagami jak wyżej. Renderuje strony pozwalając określić jak wyglądają i czy nie ma jakichś błędów usterek ataków.

3. Okno logu
Wyświetlają tu się statusy pobieranych stron.
Po kliknięciu prawym klawiszem także mamy menu kontekstowe:

Menu kontekstowe Logu

Do schowka - kopiuje log do schowka

Pokaż cały log w wewnętrznej przeglądarce – pokazuje bieżący log (z dzisiejszego dnia z folderu logów programu) w wewnętrznej przeglądarce.

Pokaż cały log w domyślnym edytorze *.log) – pokazuje bieżący log w domyślnym edytorze Windows np. notepad++, notatnik itp. jeżeli wystąpi błąd log otworzony zostanie w przeglądarce programu

Wyczyść log – czyści okno z logiem
Log oprócz widocznego ograniczonego do 400 linii okienka zapisuje się także w folderze programu w podkatalogu LOG_HTTPS4 gdzie zapisywane są logi ze wszystkich wydarzeń kolejno w plikach o nazwie wg daty utworzenia.

Sekcja timery
Pozwala ręcznie manipulować czasem timerów. Timery są odpowiedzialne za kolejne pobieranie stron w odpowiednich odstępach czasu. Możemy tu zmienić wymagany odstęp czasu.
Alarm, lub jego skasowanie przywrócą wartości domyślne. Także kliknięcie Zatwierdź alarm bez aktywnego alarmu ustawia czasy domyślne.

Pokaż zebrane linki ze stron...
Gdy program ładuje stronę może pobrać z jej zawartości wszystkie linki z ominięciem linków lokalnych oraz sprawdzić je na poprawność z białą listą. Jeżeli są błędy można sprawdzić tu jakie linki są na liście błędnych Przydatne do ewentualnego ich ręcznego zatwierdzenia na białej liście (kopiuj/wklej).
Jeżeli dana strona jest na liście a nie ma linków oznacza to że są one uwzględnione już w poprzedniej stronie.

Pokaż pobierany kod HTML
Pojawi się okno w którym będzie się pojawiał pobrany kod HTML. W zależności od opcji albo z samego pobrania GET albo z przeglądarki.

Zawijaj wiersze w kodzie HTML
Jeżeli będzie okienko z kodem wyświetlany tekst będzie zawijany. Optymalizowane strony są często „jednolinijkowe” i mało co widać gdy jest jedna długa linia tekstu na 100kB. Opcja ta poprawia w niektórych przypadkach widoczność kodu na podglądzie.

Przyklej kod do prawej strony okna
Gdy to zaznaczymy przesuwając główne okno przesuniemy także okno z kodem. Okno kodu „przykleja” się do prawej strony okna głównego swoją lewą stroną


W programie znajdują się też przyciski pomocy

Kliknięcie w spowoduje ze gdy najedziemy myszką na dowolny element będą wyświetlane podpowiedzi co dane okno robi. Kolejne klikniecie wyłącza opcję.


Na ekranie znajduje się zestaw przycisków do obsługi programu:

Przyciski programu

Obsługa jest intuicyjna

Wyświetl bieżącą stronę w przeglądarce.
Wyświetla stronę np. w Firefoxie.

Wyświetl okno na wierzchu przy błędzie.
Zaznaczenie tej opcji która też jest powtórzona w konfiguracji spowoduje, że gdy program zainicjuje alarm to okno nawet jak zminimalizowane to się rozwinie i pokaże na pierwszym planie. Alarm pokazywany jest także na pasku zadań – pasek od programu jest podświetlony na czerwono.

Pasek Zadań


Spr. wszystkie szybko
Sprawdza wszystkie strony jedna po drugiej z minimalnym odstępem 1sekundy. Przycisk ten „naciskany” jest automatycznie kilka sekund po uruchomieniu programu.

Następna strona.
Wybierana jest następna strona z listy. Gdy nie ma następnej strony program się zapętla i startuje od pierwszej.

Brak alarmów / Zatwierdź alarm
Zatwierdza wywołany alarm. Gdy alarm jest aktywny zmienia się kolor tekstu na czerwony

Brak Alarmów   Zatwierdź alarm

W przypadku powstania jakiegokolwiek komunikatu błędu pojawi się tez okno błędów:

Okno błędu

Dźwięki aktywne / WYCISZONY
Opcja ta też powtórzona jest w konfiguracji. Możemy wyłączyć dźwięki gdy np. alerty są częste.

Dźwięki aktywne   Wyciszony


Gdy podczas startu programu dźwięki są wyciszone, program zwróci swoją uwagę na to ODTWARZAJĄC jeden raz dźwięk awarii (inny niż alarm) zwracając uwagę użytkownika.

Domyślne dźwięki są w folderze WAVE programu i można je zamienić na inne. (z tą samą nazwą)


 

Konfiguracja

Klikamy w przycisk konfiguracji: Pojawi się okienko

GET HTTPS konfiguracja

 

Na samej górze znajduje się lista stron do pobrania. Wpisujemy tutaj normalnie tekstowo listę adresów URL które mają być monitorowane.
Funkcjonalność można rozszerzyć dodając specjalne znaczniki na końcu strony:

Uwaga – tylko w kolejności wg opisu. !!!

  • dodając [TS] do nazwy strony dodany zostanie znacznik czasu w milisekundach
    należy tez dopisać na końcu adresu ?ts= czyli ?ts=[TS]. Gdy znak ? już występuje wcześniej w adresie zamiast ? piszemy &
    np.: https://www.elfro.pl/?ts=[TS] wywoła stronę https://www.elfro.pl/?ts=712223313123123
    Znacznik czasu pozwala ominąć cache przeglądarek, serwerów, proxy itp. żądając nowej bieżącej strony z serwera

  • Jeżeli na końcu będą znaki *i liczba oznacza to:
    • pierwsza * od 0 do 100 pobrana strona będzie sprawdzana na zgodność z poprzednią w procentach wartość mniejsza 1 wyłącza sprawdzanie.
    • druga * maksymalne odchylenie rozmiaru strony w bajtach jeżeli jej nie ma lub jest mniejsza 0 rozmiar nie będzie sprawdzany
       
  • Jeżeli na początku strony znajdzie się średnik ; strona będzie omijana

Przykład: dla strony https://www.elfro.pl/?ts=[TS]*100*10 będzie dodany znacznik czasu strona musi być zgodna w 100% maksymalne odchylenie rozmiaru stron 10 bajtów.

 


Uwaga !!!

Zgodność kolejnych pobrań strony (zawartość) jak i jej rozmiar zależą od wielu czynników.
 

  • czy strona po stronie serwera jest statyczna czy generowana jest dynamicznie ze zmiennymi danym np. linki, id sesji, itp.

  • czy strona jest tylko pobierana funkcją GET czy także renderowana przez skrypty które np. generują znaczniki czasu, id, itp.

  • większą zgodność kolejnych pobieranych stron uzyskamy pobierając funkcją GET – opcja Czysty HTML

  • Przy pobieraniu strony i renderowaniu jej przez przeglądarkę rozmiar też będzie się zmieniał zależnie od interakcji użytkownika np. akceptacja ciasteczek.


Sprawdzaj co:
W przypadku błędu sprawdzaj co:

Czas wpisany dla pobierania stron jest czasem pętli np 15 minut przy 5 stronach oznacza to, że strony pobierane są co 15/5= 3 minuty kolejno po jednej - zapewnia to lepsze pokrycie w sprawdzeniu ogólnego działania serwisów. Nie sprawdzamy wszystkich naraz co 15 minut tylko pojedynczo co 3 minuty. Każda strona sumarycznie sprawdzana jest co 15 minut, a zadając zapytanie do serwera. Dzięki temu częściej i lepiej go monitorujemy.

Minimalny rozmiar strony:
Strony mniejsze niż wskazany rozmiar będą od razu wywoływały Alarm.

Kod HTML:
Mamy tu dwie opcje:

  • Czysty HTML – pobrany jest kod (źródło) strony bez ingerencji po stronie klienta(w przeglądarce). Dokładnie to co wysłał serwer. Choć kod ten tez może zawierać zmienne np. id sesji, użytkownika znaczniki czasu i inne jest bardziej stały. Nie sprawdzamy tu jednak zasobów i ich dostępności np. skryptów i czy się strona dobrze uruchomi.

  • Z przeglądarki po renderingu – Kod pobrany jest przez przeglądarkę i wyrenderowany uruchomiony jest kod JavaScript . Wszystko jak w normalnej stronie. Wadą jest możliwa większa zmienność kodu zaletą większa zgodność widoku jak dla klienta.
    Wybierając tę opcję zaznaczamy tez opóźnienie na wykonanie skryptów. (domyślnie 2 sekundy)
    Pobieramy stronę i dajemy jej czas na wykonanie kodu na starcie. W innym przypadku możemy uzyskać różne rezultaty np. raz się kod zdąży wykonać raz nie i strony są rożne.

 


Niezależnie od wybranej opcji program najpierw pobiera stronę jako Czysty HTML a gdy się pobierze przekazuje działania do przeglądarki. Powyższe opcje wybierają jedynie który kod będzie analizowany.

Program wykonuje kolejno czynności sprawdzania stron:

  • pobiera stronę prosto z serwera za pomocą funkcji GET i zapisuje kod HTML

  • gdy kod został pobrany strona zwróciła odpowiedni status(200), brak jest błędów, adres (nie kod HTML) zostaje przekazany do przeglądarki żeby otworzyła swoją kopię

  • czekamy aż przeglądarka załaduje swoją kopię.

  • gdy analizujemy kod z przeglądarki czekamy zadany czas (domyślnie 2 sek) na rendering przeglądarki i przepisujemy kod HTML z przeglądarki (jak nie to już mamy pobrany kod w kroku 1)

  • gdy już zakończą się czynności mamy kod HTML pobrany wg pierwszej lub drugiej opcji.

    Analizujemy kod w kolejności. Gdy którykolwiek z kroków nie zostanie spełniony kolejne nie są wykonywane.

    Kolejność kroków:

    • Strona jest optymalizowana. Usuwane są zbędne znaki, formatowanie itp. Przyspiesza to analizy i oszczędza pamięć.

    • Usuwane są znaczniki(tokeny) oznaczone jako dynamiczne opisane w dalszej części.

    • Sprawdzany jest minimalny rozmiar strony wg parametrów (domyślnie 1kB)

    • Sprawdzany jest rozmiar strony w porównaniu do poprzedniej strony z uwzględnieniem maksymalnego odchylenia w bajtach . Odchylenie definiujemy na początku konfiguracji. Gdy jest mniejsze od 0 rozmiar nie będzie sprawdzany.

    • Gdy zdefiniowana jak wyżej minimalna zgodność w % jest większa niż 1 sprawdzana jest zgodność strony z poprzednią. Sprawdzanie może być przybliżone ze względu na rozmiar plików. Dokładne sprawdzenie wymaga bardzo dużych tablic w pamięci.

    • Na koniec sprawdzane są linki w kodzie strony. Linki mogą kierować na wewnętrzne zasoby serwera lub na zewnętrzne strony z białej listy. Wszystkie linki poza dozwolonymi wywołają alarm.

Dopiero po wykonaniu tych czynności strona oznaczona jest jako poprawna.


Wycisz dźwięki – opcja powtórzona z głównej strony.
W przypadku dużej awarii ciągłe błędy i alarmy z nimi związane mogą być irytujące – wyłączamy i obserwujemy system bez dźwięków. Można także przetestować dźwięki klawiszami obok.

Wyświetl okno na wierzchu przy błędzie .
Zaznaczenie tej opcji która też jest powtórzona na stronie głównej spowoduje, że gdy program zainicjuje alarm to okno nawet jak zminimalizowane to się rozwinie i pokaże na pierwszym planie.

Włączaj monitor przy błędzie
W przypadku alarmu włączany jest monitor gdyby był wygaszony. Kwestią ustawień systemu jest czy przy ponownym włączaniu ekranu trzeba wpisywać hasło.

Sprawdzaj linki na stronach
Włączenie tej opcji spowoduje ze sprawdzane będą linki zawarte w treści strony. Linki mogą kierować na wewnętrzne zasoby serwera lub na zewnętrzne strony z białej listy. Wszystkie linki poza dozwolonymi wywołają alarm. Zaznaczając tą opcję należy skonfigurować białą listę.

Biała lista – lista dozwolonych linków spoza zasobów serwera. Po kliknięciu pojawi się okienko:

Biała lista

Podczas wpisywania linków obowiązuje kilka zasad:

  • Nie używamy http , https , :// , www

  • Linki wewnętrzne są pomijane np. /o_nas

  • Subdomeny są akceptowane wraz z domeną np elfro.pl pozwala też na aktualnosci.elfro.pl jak i na elfro.pl/about

  • Linki próbujące oszukać algorytm np. hacker.com?par=elfro.pl czy kradnijhasloelfro.pl będą także oznaczone jako próba nadużycia

Linki zapisane są w programie i można je odtworzyć klikając Przywróć wartości domyślne.

Co zrobić gdy pojawią się kolejne linki a nie wiemy jakie a strony wyrzucają błędy?

  • Na stronie głównej programu odczytujemy wszystkie strony

  • Klikamy prawym klawiszem myszy w okienko Logu

  • Wybieramy Pokaż zebrane linki ze stron...

Lista tokenów do usunięcia ze strony

Strony często ładują się z dynamiczną zawartością już z serwera. Niestety otrzymujemy wtedy za każdym razem inną stronę co utrudnia jej sprawdzanie pod kątem zgodności w % z poprzednią. Aby to usprawnić należy usunąć wszystkie(lub chociaż większość) znaczniki i fragmenty dynamiczne.
Np.
input type="hidden" id="_token" placeholder="" value="31431322eqde23123
różny jest od :
input type="hidden" id="_token" placeholder="" value="784eds328189dwsos

Otwieramy więc listę tokenów:

Lista tokenów


i tak jak jest w opisie :
wpisujemy fragment kodu od zmiennego fragmentu np: input id="_token" value=

Wtedy zostanie usunięta cała linia zaczynająca sie od tego kodu.
Znaki puste na początku linii są pomijane.

Albo używamy gwiazdek np *?ts=*&*22 oznacza znajdź fragment kodu
zaczynający się od ?ts=
kończący się na &
o długości maksymalnej 22 znaki";

Jak to znaleźć w stronach. Po pierwsze program ma zdefiniowane znalezione zależności i można je odtworzyć klikając Przywróć wartości domyślne. Jeżeli jednak pojawią się nowe nie ma innego wyjścia jak pobrać ręcznie kody źródłowe stron lub z listy kodu HTML. I je porównać w edytorze tekstowym np. notepad++

Na zamówienie możemy wykonać taki analizator do analizy róźnic w kodzie strony.

KONIEC


Uwaga !!!

Program dostępny na zamówienie.

 

Program jest jaki jest i pomimo dołożenia wszelkich starań może źle działać takie życie.
software is as is .... limited guarranty.... gnu license .... on your risk ... don't try this at home … etc. wink

©'2023 ELFRO inż. Tomasz Fronczek www.elfro.pl poczta@elfro.pl


Script logo