• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosty CMS - Fat Free - Prośba o feedback

Object Storage Arubacloud
0 głosów
199 wizyt
pytanie zadane 13 stycznia 2019 w PHP przez niezalogowany

Hej!
Od kilku dni siedziałem nad małym projektem, którym jakoby miał mi pomóc przyswoić język jakim jest php.
Stworzyłem prosty CMS, który posiada takie funkcje jak:

  1. Dodawanie, edycja, usuwanie oraz kategoryzowanie wpisów
  2. Listowanie wpisów wraz z paginacją
  3. Dynamiczne MENU, które można stworzyć w panelu
  4. Możliwość dodawania podstron w dynamiczny sposób za pomocą panelu.
  5. Widgety - czyli elementy strony, które możemy w swobodny sposób wyświetlać, w dowolnym miejscu na stronie oraz edytować je w panelu.
  6. Oczywiście prosty panel zarządzania oraz logowanie do niego.
  7. Minimalistyczne wsparcie dla seo w postacie SEO Title oraz Description, które możemy zmieniać w panelu.
  8. Dynamiczne ładowanie plików CSS oraz JS jeżeli tylko są w odpowiednim katalogu.
    webroot/css
    webroot/js
     

W planach mam rozwój tego projektu. Na początku oczywiście refaktoryzacja kodu na podstawie opinii, które uda mi się pozyskać od bardziej doświadczonych kolegów. 
Mam prośbę, nie zależy mi aktualnie na tym aby czytać co można dodać (z funkcjonalności), a jedynie chciałbym dowiedzieć się jakie błędy i niedociągnięcia popełniłem w samym kodzie.

W aplikacji wykorzystałem Fat Free FW głównie dla routingu.
Bazowy Controller oraz Model również wykorzystałem z gotowca. 

https://gitlab.com/raptoor2/simplecms/tree/master

1 odpowiedź

0 głosów
odpowiedź 13 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)

Trochę przejrzałem, kilka sugestii ode mnie: 

komentarz 13 stycznia 2019 przez niezalogowany

Wielkie dzięki za zainteresowanie, teraz moje pytania do odpowiedzi :)

 

  1. https://gitlab.com/raptoor2/simplecms/blob/master/src/Models/Category.php#L17 - tak nie robimy, wszystkie parametry do zapytań należy bindować.
    Chodzi o funkcję "bind_param"? Jeżeli tak to jakie korzyści niesie jej używanie?
  2. Zastanowiłbym się nad trzymaniem komunikatów (treści błędów itp.) w samych klasach. Co np. gdy będziesz chciał dodać obsługę kolejnego języka?
    Czyli powinien to zrobić na zasadzie jakiegoś pliku np XML, w którym trzymałbym treści komunikatów oprawione odpowiedzią nazwą? np NO_USER
  3. https://gitlab.com/raptoor2/simplecms/blob/master/src/Models/Search.php HTML gdzieś w logice modelu, to jest słabe.
    A jak powinienem to zrobić? Mam tutaj generowanie  formularza i w przyszłości chciałem dodać mozliwość budowania tego formularza w panelu stąd umieszczone tagi w logice.
  4. https://gitlab.com/raptoor2/simplecms/blob/master/src/Models/User.phphtmlspecialchars() na haśle? Czyli jak podam hasło np. z < to się nie zaloguje, bo to zamieni na jakąś encję. Poza tym md5 nie nadaje się do hashowania haseł.
    Czyli powinienem używać sha1 + salt zamiast tego starego md5?
komentarz 13 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
1. Zapytanie jest wysyłane osobno i parametry osobno. Dzięki temu nie ma żadnej możliwości wykonania ataku sql injection.

2. Na przykład. Może to być równie dobrze zwykła tablica w PHP zwracająca klucz - tłumaczenie, coś w stylu: 'user' => 'Użytkownik'. Do tego można to jakoś podzielić, dodać obsługę wielu języków i wydaje się to wtedy całkiem sensowne.

3. Ja bym chyba i tak przerzucił to do osobnego pliku widoku, który by się renderował i zwracał do zmiennej. Dalej w razie potrzeby możesz sobie go podstawić gdzieś do panelu.

4. sha1 nie jest nic lepsze, bcrypt albo Argon2 (password_hash + password_verify).

Podobne pytania

0 głosów
2 odpowiedzi 228 wizyt
pytanie zadane 16 grudnia 2023 w Nasze poradniki przez wizarddos Nałogowiec (25,930 p.)
0 głosów
0 odpowiedzi 182 wizyt
0 głosów
2 odpowiedzi 210 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...