Quick.Cms.Ext v6.7: dodatkowe informacje

Bezpieczeństwo skryptu

Nasze skrypty uznawane są za bezpieczne, ale dużo w tej kwestii zależy także od administratora serwisu lub jego wykonawcy. Możemy wyciskać z naszego skryptu ostatnie soki, ale na nic się to zda, gdy ktoś będzie zapisywał dane do FTP w programach typu FileZilla. Zapoznaj się z kilkoma zaleceniami odnośnie poprawienia bezpieczeństwa skryptu:

  • Po uruchomieniu serwisu koniecznie zmień nazwę pliku "admin.php" na inny. Koniecznie zapoznaj się z opisem zmiennej $config['admin_file'] », która znajduje się w pliku database/config.php.
  • Zabezpiecz bazę danych zmieniając jej nazwę. Dowiedz się więcej na ten temat w opisie zmiennej $config['database'] », która znajduje się w pliku database/config.php.
  • Warto wymyśleć niebanalne hasło do panelu administracyjnego, najlepiej składające się z liter i cyfr i odpowiednio długie. Nieraz użytkownicy ustawiają hasło na “admin”, co ułatwia włamanie.
  • Nie zapisuj danych do logowania na serwer FTP (login, hasło) w programach typu Total Commander czy FileZilla. Istnieją programy typu konie trojańskie, które pozwalają napastnikom przechwytywać te dane i wtedy droga do logowania stoi otworem.
  • Sprawdzaj poprawki w panelu administracyjny. W przypadku pojawienia się poprawek bezpieczeństwa koniecznie wprowadź je do skryptu. Jeśli brak Ci takich umiejętności, poproś oto wykonawcę strony.
  • Zachowaj rozwagę w instalacji skryptów i dodatków niewiadomego pochodzenia. Często zdarza się, że atakujący wykorzystuje luki w takich skryptach. Dlatego odradzamy instalowanie np. menedżerów plików do edytorów WYSIWYG, które często nie są należycie zabezpieczone i podatne na ataki.

Prywatność

Prezentujemy informacje związane z obsługą ciastek (cookies), przesyłaniem i przechowywaniem danych osób odwiedzających stronę.

Prywatność po stronie klienta - front-end
Wykaz ciastek (cookies):
  • sLanguage - przechowuje informację o aktualnie przeglądanej wersji językowej strony. Wyłączenie tego ciastka uniemożliwi zmianę języka na stronie.
  • iNoticeClosedX (gdzie X to cyfra) - informuje skrypt, czy dany komunikat np. informujący o ciastkach został wyłączony/zaakceptowany. Wyłączenie ciastek o tej nazwie, spowoduje, że komunikaty będą się zawsze wyświetlały.
  • poll_X (gdzie X to cyfra) - zawiera informację o oddanym głosie w sondzie. Wyłączenie tego ciastka spowoduje, że sonda nie będzie wyświetlała wyników głosowania.

Skrypt używa zmiennej sesyjnej (sessions), która przechowuje dane po stronie serwera, informacje o zalogowanym użytkowniku (dodatek users), odnotowanej wizycie (dodatek simpleCounter), wyszukiwanych frazach w wyszukiwarce systemu (dodatek stats) i przeglądanych stronach (dodatek stats).

Dane osoby odwiedzającej stronę nie są przekazywane innym podmiotom. Wyjątkiem są dodatki i modyfikacje, które wywołują skrypty z zewnętrznych serwisów m.in. Google Analytics, Google Maps, Google Translate, Facebook Like Box, Filmy Youtube, itp. Autorzy tych zewnętrznych skryptów powinni na swoich stronach informować o ciastkach i danych jakie przechowują na swoich serwerach.

Prywatność od strony panelu administracyjnego - back-end
Wykaz ciastek (cookies):
  • sLanguageBackEnd - przechowuje informację o aktualnie przeglądanej wersji językowej strony w panelu administracyjnym. Wyłączenie tego ciastka spowoduje brak możliwości zmiany tłumaczenia strony.
  • sEmail - adres email, który służy do logowania. Dane z tego ciastka wpisywane są automatycznie w polu Email w formularzu logowania. Wyłączenie tego ciastka spowoduje, że email nie będzie zapamiętywany.
  • bNoticesDisplayed - zawiera informację o przeczytaniu komunikatów w sekcji "Informacje". Gdy to ciastko zostanie wyłączone, komunikaty będą ciągle się wyświetlały.
  • iMessagesNoticesTime - przechowuje datę ostatnio przeczytanych komunikatów z sekcji "Informacje". Wyłączenie tego ciastka spowoduje, że komunikaty będą ciągle się wyświetlały.
  • bLicenseX (gdzie X to cyfra) - przechowuje akceptację licencji systemu. Wyłączenie tego ciastka uniemożliwi wyłączenie (akceptację) komunikatu o licencji, a co za tym idzie korzystanie z panelu administracyjnego.
  • iPluginsMessagesClosed - zapamiętuje kliknięcie na przycisk "Zamknij" w dziale "Zapoznaj się z ważnymi informacjami" nad listą dodatków. Wyłączenie tego ciastka spowoduje stałe wyświetlanie rozwiniętej listy komunikatów.
  • sSelectedTab - zawiera nazwę ostatnio używanej zakładki z formularza edycji strony, itp. Gdy to ciastko zostanie wyłączone, po zapisaniu formularza, otworzy się pierwsza zakładka, a nie ostatnio używana.
  • iMessagesNewsTime - przechowuje datę ostatnio przeczytanego newsa z sekcji "Aktualności". Wyłączenie tego ciastka spowoduje, że wszystkie newsy będą traktowane jako nieprzeczytane.
  • bMessagesNewsClear - zawiera informację o oznaczeniu jako przeczytane newsów z sekcji "Aktualności". Wyłączenie tego ciastka spowoduje, że wszystkie newsy będą traktowane jako nieprzeczytane.

System kilkukrotnie łączy się z serwerem OpenSolution.org w celu pobrania aktualności, porad (na pulpicie panelu administracyjnego), informacji (komunikatów bezpieczeństwa), listy dodatków i listy poprawek. W trakcie pobierania danych wywoływane jest żądanie i serwer OpenSolution.org zapisuje z jakiego adresu IP (serwera na której uruchomiona jest strona) i adresu URL strony internetowej zostało wysłane. Gromadzone dane służą do celów statystycznych i weryfikacji legalności używanego systemu. Ze względów bezpieczeństwa nie podamy lokalizacji wywoływania kodu żądania do serwera OpenSolution.org. Usunięcie porad na pulpicie, informacji i aktualności od OpenSolution.org w panelu administracyjnym może naruszać licencję »

Pamiętaj, że w systemie wykonawca Twojej strony mógł zainstalować zewnętrzne skrypty. Skontaktuj się z nim, aby udzielił Ci informacji jakie zewnętrzne skrypty są wywoływane na Twojej stronie. Autorzy zewnętrznych skryptów powinni na swoich stronach informować o używanych ciastkach i danych jakie przechowują na swoich serwerach.

Licencja systemu i dodatków

Quick.Cms.Ext funkcjonuje na licencji dostępnej na stronie licencja edycji darmowych i płatnych » O licencjach do dodatków zewnętrznych (nie naszego autorstwa) poinformujemy jak będziemy posiadali opracowane wszystkie planowane dodatki. Do tego czasu po instalacji każdego dodatku warto zerknąć do katalogu "plugins" i sprawdzić czy przybyły tam jakieś pliki, a wraz z nimi licencje tych dodatków. Staramy się dobierać takie dodatki, które posiadają liberalne licencje.

Jeśli chcesz zainstalować zewnętrzny skrypt (najczęściej w PHP lub JavaScript) na własną rękę, wystrzegaj się tych na licencji: ... pozostały opis jest dostępny tylko dla zalogowanych użytkowników » Quick.Cms.Ext v6.x.

Obsługa wielu tłumaczeń

Przykładowo obsługujesz klientów z Polski, ale zdarza się też z Czech i Niemiec. W takiej sytuacji w swoim serwisie prezentujesz 3 tłumaczenia opisu swojej działalności. Z reguły jednak bywa tak, że serwis w j. polskim jest obszerniejszy/różny w opisy z kilku powodów: zakres Twoich usług w Polsce jest szerszy niż w pozostałych krajach; umieszczasz aktualności w serwisie, ale ze względu na brak czasu i ograniczenie kosztów nie tłumaczysz ich do pozostałych języków. Najczęściej więc pozostałe tłumaczenia serwisu zawierają jedynie podstawowe informacje o Twojej działalności.

Dlatego system zaprojektowaliśmy w ten sposób, aby każde tłumaczenie było niezależnym "bytem" w serwisie. Możesz więc rozszerzać opisy w jednym tłumaczeniu, nie mając wpływu na pozostałe.

Niestety w sytuacji więcej », gdy masz zamiar prowadzić np. trzy tłumaczenia serwisu i chcesz, aby każde z nich było identyczne, to będziesz musiał pamiętać, aby nową podstronę i zdjęcia do nich umieszczać dla każdego tłumaczenia osobno. Będzie to zajmowało trochę więcej czasu niż gdybyś miał to zrobić raz. Gdy serwis aktualizujesz raz na dwa tygodnie, to nie jest to tak problematyczne, jak w sytuacji gdy serwis jest aktualizowany kilka razy dziennie. W innych systemach "wielojęzyczność" rozwiązano inaczej. W trakcie dodawania nowej podstrony automatycznie umieszczane są podstrony w pozostałych tłumaczeniach. Jednak brak zupełnej niezależności tłumaczeń w tych systemach też ma swoją wadę, np. w serwisie pozostają "puste" podstrony. Musisz rozważyć czy obsługa "wielojęzyczności" w naszym systemie jest bardziej zaletą czy wadą.

Przygotowaliśmy zestaw ulepszeń do obsługi tłumaczeń w postaci gotowych wskazówek ». Zapoznaj się z nimi i możliwe, że te rozwiązania wystarczą, abyś mógł opracować wielojęzyczny serwis na naszym systemie.

W oparciu o Quick.Cms.Ext możesz wykonać serwis informacyjny, katalog produktów, prosty sklep internetowy czy choćby "zwykłą witrynę" z kilkoma podstronami. System posiada wiele dodatków, które znacznie rozszerzają zakres działania systemu. Staramy się wprowadzać wsparcie obsługi wielojęzyczności do każdego z nich. Jednak chcemy, abyś wiedział, że nie jest to dla nas najwyższym priorytetem. Powodem jest niewielkie więcej »zainteresowanie firm na prowadzenie serwisu internetowego w dwóch, a jeszcze mniej w trzech i więcej tłumaczeniach. Jeszcze większą rzadkością są serwisy wielojęzyczne, które mają cechy sklepu internetowego. Zauważyliśmy, że serwisy bardziej rozbudowane (katalogi produktów, sklepy internetowe, serwisy z aktualnościami) bardzo rzadko udostępniają inne wersje językowe. Dodatkowe tłumaczenia w zdecydowanej większości posiadają proste oraz małe serwisy i pod takie potrzeby staramy się dopasować obsługę wielu tłumaczeń w naszym systemie. Nie oznacza to, że nie będziesz w stanie prowadzić sklepu internetowego w kilku językach na naszym systemie. Będziesz mógł ale miej świadomość, że tego typu zaawansowane funkcjonalności, nie uzyskały od nas pełnego wsparcia dla wielu tłumaczeń. Jak wcześniej wspomnieliśmy, zapotrzebowanie na pełne wsparcie jest niewielkie. Wolimy więc poświęcać czas na rozwój, testowanie i wsparcie funkcji potrzebnych szerszemu gronu odbiorców. Może jednak, podstawowa obsługa tłumaczeń w zaawansowanych dodatkach w zupełności Ci wystarczy? Przetestuj wersję demonstracyjną » systemu pod tym kątem.

Ograniczenia skryptu

System zaprojektowaliśmy tak, aby działał maksymalnie szybko ». Przed wczytaniem serwisu większość danych podstron, plików, sliderów, widżetów, itp. pobierane jest do pamięci RAM. Dzięki temu późniejsze wygenerowanie różnych list podstron, widżetów, menu, sliderów jest zdecydowanie szybsze. System nie potrzebuje więcej »każdorazowo pobierać danych z dysku twardego (bazy danych SQLite), aby wyświetlić poszczególne elementy serwisu. Jeszcze kilka lat temu, gdy limity na serwerze z dostępem do pamięci RAM były dość niskie (np. 16 czy 32 MB), to wymienialiśmy je na poniższej liście ograniczeń. Jednak obecnie standardem są już limity 128 MB RAM. Takie ilości w zupełności wystarczają nawet dla bardzo rozbudowanych serwisów.

System posiada ograniczenia, które są bardziej związane z wygodą korzystania z panelu niż tym, że serwis po przekroczeniu określonej ilości danych, przestanie działać.

Na systemie tworzone są serwisy zarówno z 30 jak i z 3000 stron. Jednak aby obsługa systemu była wygodna na standardowym serwerze umownie ustaliliśmy, że bezpieczny limit to: 2000 stron. Powodów jest kilka i wszystkie związane z obsługą panelu:

  1. czas generowania niektórych działów w panelu może zajmować kilka sekund, a przy mało wydajnych serwerach i/lub bardzo rozbudowanych serwisach nawet kilkanaście sekund.
  2. listy stron, widżetów i sliderów w panelu administracyjnym nie posiadają podziałów na części (paginacja). Owszem można niektóre podstrony przenieść do osobnej listy, co znacznie przyspieszy wczytywanie się danych. W rozbudowanych serwisach, to właśnie aktualności i produktów jest najwięcej.
  3. rozwijane listy przy takich opcjach jak Strona nadrzędna, Powiązane strony, Wyświetlaj tylko na stronach będą zawierały duże ilości danych, a wyszukanie konkretnej podstrony na liście znacznie utrudnione (choć posiadają wyszukiwarkę).
  4. brak filtrowania oraz podziału tagów i cech (danych technicznych) na kategorie sprawia, że przy bardzo dużych serwisach, zarządzanie tymi danymi staje się mało wygodne
  5. gdy do każdej podstrony wgrywanych jest kilka do kilkunastu zdjęć, to sumarycznie baza danych może zawierać kilka tysięcy zdjęć. System ma zaprojektowaną listę wyboru zdjęć do podstrony w taki sposób, aby działał maksymalnie wydajnie i wygodnie dla kilkuset zdjęć. Gdy plików jest już kilka tysięcy, to wyszukiwanie ich staje się mało wygodne i bardziej czasochłonne.
  6. obsługa wielu języków (tłumaczeń) przy rozbudowanym serwisie może być ciężka do opanowania. Od administratora wymagana jest wtedy wysoka dyscyplina.

Pocieszające jest to, że dla serwisu posiadającego 100 czy 1000 podstron, po stronie klienta czas wczytywania się danych nie wiele się zmieni.

Pamiętaj, że nie ustawiliśmy nigdzie limitu. Ilość przez nas określona jest tylko umowna. Znamy wdrożenia, gdzie serwisy są znacznie większe, jednak właściciel panelu zdaje sobie sprawę, że w niektórych sytuacjach musi dłużej poczekać, aby np. wczytać listę wszystkich dostępnych plików na serwerze.

Do góry
o nas | kontakt
class="extended" Więcej »