Dokumentacja do Quick.Cart.Ext v6.6 i v6.7

Informacje dodatkowe

Poniżej znajduje się omówienie zagadnień związanych z polityką prywatności, bezpieczeństwem, plikową bazą danych itd.

Polityka prywatności

Poniżej przedstawiamy kwestie prywatności, ciastek oraz przesyłanych danych podzielone na dwie części:

Po stronie klienta

Narzędzie po stronie klienta przechowuje informacje na temat wybranego przez użytkownika języka, w jakim wyświetlana jest strona. Te informacje przechowywane są w ciasteczku (cookies) o nazwie “sLanguage” i wyłączenie go spowoduje, że niemożliwym będzie przeglądanie strony w różnych językach jeśli jest przetłumaczona na kilka języków.

Dodatkowo zapisywane są do ciasteczka (cookies) dane użytkownika, który wypełniał formularz zamówienia, ale w pewnym momencie zrezygnował z dalszego jego wypełniania by przejść na inną podstronę. Dane przechowywane będą do wyłączenia przeglądarki. Nazwy ciastek przechowujących te dane: sFirstName, sLastName, sCompanyName, sStreet, sZipCode, sCity, sPhone, sEmail.

Jeśli klient w koszyku naciśnie na przycisk “zapamiętaj koszyk” to utworzy się ciasteczko (cookies) o nazwie sCustomerpl, które przechowywać będzie przez 72 godziny zaszyfrowane id tymczasowego zamówienia.

Skrypt przechowuje także w zmiennej sesyjnej (sessions) id tymczasowego zamówienia jeśli użytkownik doda jakiś produkt do koszyka. Przechowywanie tych danych wymagane jest do prawidłowego działania skryptu.

I wreszcie, klient składając zamówienie przekazuje swoje dane osobowe i teleadresowe, które zapisywane są w bazie danych zamówień.

Po stronie administratora

Po stronie administratora danych zbieranych przez skrypt jest więcej. Są nimi ciastka (cookies) “sLanguageA”, “sLogin”, a także zmienne sesyjne (sessions), które przechowują informacje o zalogowanym administratorze.

Po zalogowaniu na stronie pulpitu pobierane są nowości z OpenSolution.org, a także losowe informacje w okienku “Dodatkowe informacje”. W celach statystycznych OpenSolution przesyła także adres strony WWW. Jeśli nie chcesz przesyłać tej informacji edytuj szablon “templates/admin/home.php” i usuń zmienną “$_SERVER[HTTP_HOST]”.

W przypadku usunięcia wymaganego linka do strony OpenSolution.org, jeśli nie została wcześniej wykupiona opcja usunięcia linka, narzędzie wyświetla stosowny komunikat o złamaniu licencji i przesyła do OpenSolution informację o tym zdarzeniu wraz z adresem strony. Ze względów bezpieczeństwa nie podamy informacji, gdzie w kodzie taka informacja jest przesyłana. Jednak jeśli usunąłeś zmienną wcześniej opisaną i nie łamiesz licencji nie musisz się obawiać, że jakiekolwiek dane zostaną przekazane OpenSolution.

Wyraźnie nie zalecamy usuwania z pulpitu nowości z OpenSolution.org. Nie będziesz na bieżąco informowany o kwestiach bezpieczeństwa narzędzia i ewentualnych poprawkach. Nie bądź zdziwiony jeśli nie aktualizując narzędzia po jakimś czasie, ktoś wykorzysta lukę i wgra nieporządane treści.

Kwestie bezpieczeństwa

Opracowaliśmy szereg dodatkowych zabezpieczeń skryptu, które powinny w skuteczny sposób uniemożliwić napastnikom przejęcie poufnych danych. Warto podkreślić, że sam skrypt nie posiada znanych nam luk czy błędów, które mogłyby być skutecznie przez napastników wykorzystane, jednak przedstawiamy kilka sugestii, które warto przeanalizować i być może usprawnić.

  • Ogranicz dostęp do panelu administracyjnego dla jednego adresu IP. Dodaj zmienną $config['allowed_ip_admin_panel'] do pliku konfiguracyjnego. Dowiedz się więcej » o tej zmiennej.
  • Nie powinno się zapisywać w klientach FTP typu Total Commander danych do logowania na serwer FTP (login, hasło). Istnieją programy typu konie trojańskie, które pozwalają napastnikom przechwytywać te dane i wtedy droga do Państwa danych stoi otworem.
  • Warto wymyśleć niebanalny login i hasło do panelu administracyjnego, najlepiej składające się z liter i cyfr i odpowiednio długie. Nieraz użytkownicy zostawiają domyślny login “admin”, co ułatwia włamanie.
  • Po uruchomieniu strony koniecznie zmień nazwę pliku "admin.php" na inny dla przykładu: "25db67.php". Po tej zmianie panel administracyjny będzie wywoływany z przeglądarki pod adresem: www.twoj-adres.pl/25db67.php. Nie udostępniaj tego adresu osobom trzecim tak by znacznie utrudnić próbę włamania się na Twoją stronę.
    W wersji v6.2 i wyższej, edytuj plik "database/config/general.php" i poszukaj zmiennej $config['admin_file'], a następnie zmień wartość "admin.php" na nową nazwę pliku czyli w tym przypadku "25db67.php".
  • Kolejną możliwością jest próba ustawienia jak najbardziej restrykcyjnych praw katalogom i plikom, które wymagają praw do zapisu na np. 700 czy 600, a następnie przetestowanie czy skrypt działa poprawnie
  • Sprawdzaj czy wszystkie znane luki w skrypcie są poprawione.
  • Rozwaga 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.
  • Nie udostępnianie skryptu osobom trzecim. W bazie danych przechowywane są dane klientów, które powinny być chronione i nie być dostępne dla osób nie uprawnionych do tego. Jeśli musisz udostępnić skrypt to prześlij go bez plików, których nazwa zaczyna się od "orders" z katalogu "database/".

Plikowa baza danych

Poniżej przedstawiamy zestawienie zalet i wad plików płaskich. Chcemy by użytkownik narzędzia był świadom ich piękna ale i ograniczeń.
Niektórzy z przerażeniem myślą o tym czym mogą być pliki płaskie. Wielu nie spotkało się z takimi rozwiązaniami, bo wszystko z czym się spotkali to np. SQL. Dla tych, którzy nie wiedzą “z czym się je” pliki płaskie, przedstawiamy zestawienie zalet i wad plików płaskich.

Zalety plików płaskich

  • prosta instalacja - by skrypt funkcjonował wystarczy po jego wgraniu na serwer ustawić kilka praw do zapisu odpowiednim katalogom i plikom (czasem wystarczą domyślne)
  • szybkość - dane pobierane z plików płaskich w skrypcie pobierane są zdecydowanie szybciej niż w przypadku MySQL, SQLite itp. Oczywiście mowa o sytuacji gdy serwis nie jest bardzo rozbudowany. Pamiętać trzeba, że skrypt przeznaczony jest dla niedużych stron internetowych posiadających od 1 do 2000 produktów (granicą jest 3000 produktów choć i to jest zmienne w zależności od długości opisów produktów i ustawień serwera).
  • skrypt zadziała prawie wszędzie - niektóre hostingi (zwłaszcza te darmowe) nie udostępniają baz danych SQL. Skrypt poradzi sobie z tym problemem.
  • łatwość przenoszenia danych - jeśli chcesz skopiować całą stronę z jednego serwera na drugi to wystarczy pobrać skrypt z konta FTP, wgrać na drugi serwer, ustawić odpowiednie prawa do katalogów i plików, i po sprawie.
  • prosta kopia zapasowa - można pobrać darmowy dodatek, który wykona kopię zapasową lub po prostu zalogować się na konto FTP i skopiować katalog “database/”
  • znajdź i zamień - jeśli już opanujesz obsługę plików płaskich to przekonasz się, że w wielu przypadkach będziesz mógł zmienić dane masowo dla stron czy plików. Wystarczy pobrać i edytować w notatniku plik z konta FTP i zastosować funkcję znajdź i zamień
  • bezpieczeństwo - pliki płaskie obsługiwane są bez wykorzystywania zapytań SQL, przez co skrypty nie wymagają dodatkowego zabezpieczenia danych np. przed atakami typu SQL Injection.

Wady plików płaskich

  • ograniczona wielkość danych - narzędzie nie nadaje się na bardzo rozbudowane strony (choć znamy sporo wyjątków od tej reguły). Jeśli planujesz przechowywać bardzo dużo treści na stronie np. chcesz stworzyć sklep z 2000 produktów to bez zmiany limitów w konfiguracji serwera może być z tym problem. Tak naprawdę wszystko zależy od:
    • długości opisów - możesz pomieścić 2000 produktów gdy w opisie każdego produktu wpiszesz jedno krótkie zdanie lub 200 produktów gdy opis każdego produktu będzie składał się z 5 stron a4. Z doświadczenia wiemy, że użytkownicy wklejają tekst z np. Microsoft Word, który generuje mnóstwo niepotrzebnego kodu i tak by wgrać 3 zdania tekstu do opisu faktycznie przeklejony tekst zajmuje 10 x więcej kodu ze względu na zaśmiecenie danych. Dlatego konieczne jest pilnowanie jakości tekstu i używanie kodu HTML w treści wtedy, gdy faktycznie zajdzie taka potrzeba.
    • ustawień serwera - wiele serwerów ma ustawiony limit pamięci podręcznej na 32 MB i więcej. Niektóre jednak limit ten mają powiększony (spotkaliśmy się z limitami na 128 MB) i w takiej sytuacji serwer będzie mógł obsłużyć Twoją stronę nawet wtedy, gdy inne serwery będą już wyświetlały błędy.
  • prawdopodobieństwo uszkodzenia pliku większe niż w SQLu - takie sytuacje zdarzają się nawet w bazach danych SQL więc nie należy panikować. Jednak prawdopodobieństwo uszkodzenia pliku napewno jest większe i wzrasta wraz z ilością osób, które w tym samym czasie zarządzają stroną. Zalecamy wykonywać kopie zapasową przy użyciu darmowego dodatku lub przez skopiowanie katalogu “database/” z konta FTP za każdym razem, gdy modyfikowana będzie znaczna część danych stron, produktów i plików.
  • trudniejsza obsługa danych - w przypadku chęci ingerencji w bazę danych, opanowanie tego dla kogoś kto nauczony jest obsługi jedynie baz danych typu SQL, może to być problematyczne. W tym przypadku jednak wprawiony programista opanuje to w ciągu kilku godzin.

Ograniczenia skryptu

Skrypt generuje dane kilkukrotnie (a czasem i kilkunastokrotnie) szybciej niż większość dostępnych skryptów jak WordPress, Joomla itd (zapoznaj się z wykresami wydajności narzędzia). To jego istotna zaleta. Jednak jego ograniczeniem jest wielkość plików bazy danych. Ciężko określić dokładną wartość maksymalnej ilości stron i danych plików do nich dodanych, gdyż ograniczenie to zależy od kilku czynników jak długość opisów stron i produktów, ilość stron i produktów i ustawienia limitów serwera.

Zakładając restrykcyjne limity serwera trzeba przyjąć, że pliki w katalogu “database/” nie powinny zajmować więcej niż 8 MB dla jednego języka. W większości przypadów jednak będzie można przechowywać 2-3x więcej.

Skrypt nie posiada wbudowanej kontroli zapisu danych do pliku z danymi przesłanymi przez kilku użytkowników na raz. W sytuacji gdy plik z danymi np. produktów czy zamówień jest duży, a modyfikuje go w tym samym czasie kilka osób, może dojść do jego uszkodzenia. Są to jednak sytuacje bardzo rzadkie.

Prosimy także pamiętać, że skrypt w swej budowie przygotowane jest na małe ilości danych i mimo, że serwer daje możliwości na przechowywanie dużej ilości danych to jednak skrypt będzie znacznie spowalniał i obciążał procesor serwera. Dlatego skrypt najlepiej sprawdzać się bedzie przy małych stronach obsługujących do 1000 produktów i do 200 stron o niedużej ilości treści (duża treść rozumiana jest jako 4 strony a4 tekstu/kodu).

Więcej informacji na temat bazy danych znajdziesz w sekcji zalety i wady plików płaskich

Adresy powrotu i raportów dla płatności

Większość zewnętrznych systemów płatności (PayPal, DotPay) po założeniu konta w tym serwisie i skonfigurowaniu go w panelu sklepu, automatycznie otrzymuje adresy dla informacji o statusach płatności czy przekierowania klienta na stronę sklepu po zrealizowaniu płatności. Jednak dla systemu PayU (Platnosci.pl) należy te adresy wprowadzić w panelu PayU w edycji punktu płatności. Mają one nastepującą postać:

  • Adres powrotu - błąd: http://www.adres-strony.pl/?,return,payment&status=FAIL
  • Adres powrotu - poprawnie: http://www.adres-strony.pl/?,return,payment&status=OK
  • Adres raportów: http://www.adres-strony.pl/?,notify,payment
gdzie "www.adres-strony.pl" to należy zamienić na adres twojej strony internetowej.

Jeśli korzystasz z serwisu Przelewy24, możesz uaktywnić dodatkowy adres dla mechanizmu raportowania. Wystarczy, że prześlesz adres skryptu do raportowania: http://www.adres-strony.pl/?,return,payment na email partner@przelewy24.pl.

o nas | kontakt