Zamiast stosować przewidywalne, inkrementowane identyfikatory w tabelach bazy danych zaleca się często, ze względów bezpieczeństwa, używanie tzw. #uuid, czyli unikalnych identyfikatorów tekstowych. Taki klucz w tabeli maksymalnie niweluje skuteczność ataków ☠️ polegających na kolejnym odpytywaniu URL, zwiększając jedynie parametr ID o jeden.

Na przykładzie #php i #laravel zademonstruję sposób na użycie UUID.

A czy Ty używasz UUID w swoim projekcie?
michalkortas - Zamiast stosować przewidywalne, inkrementowane identyfikatory w tabela...

źródło: comment_1612454863KAux8tRtsBdojzAWuKtSXq.jpg

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Serghio: @Serghio: Mam doświadczenie w projekcie gdzie poprzednik zaczął stosować uuid oraz id (id był podstawowy)

uuid wypływało zawsze na zewnątrz, do jakiegoś get itd.
obowiązywała jednocześnie zasada aby id nigdy nie było widoczne nigdzie na froncie, id używaliśmy tylko do komunikacji pomiędzy wywołaniami na backendzie.
  • Odpowiedz
@Serghio: @szczesc_borze: ostatnio mi wystarczyła informacja ile zamówień tygodniowo posiada pewna firma gdzie numer zamówienia jest autoincrement, wystarczyło złożyć dwa zamówienia w przeciągu tygodnia i wiedziałem

ps. to może ulid? nie rozwala tak bazy przy insercie
  • Odpowiedz
Wszystko w env tez będzie głupie. Potem bedziesz miał plik env z 1000 linii


@asdfghjkl: przynajmniej bedzie wszystko w jednym miejscu a nie rozwleczone po całym projekcie (btw 1000 parametrów konfiguracyjnych - jak bedzie miał 30 to już dużo i tak). Jedyny problem z takim podejsciem ze np. mozesz chciec jednak trzymać jakieś ustawienia w repo (np. stopien kompresji plików ktore przetwarszasz) ale nie te wrażliwe (np. klucz do API
  • Odpowiedz
@kefas_safek: Generalnie dobrą praktyką jest posiadanie modułów oddzielonych od symfony. Ja zazwyczaj robię tak, że mam sobie src/AppBundle i jakiś na przykład src/App i w tym drugim mam sobie logikę biznesową podzieloną na różne moduły i oddzieloną kompletnie od frameworka, więc teoretycznie jakbym kiedyś zdecydował zmienić framework to zmieniam framework, a nie mój kod biznesowy. Tam też trzymam wszelakie encje, ale nie korzystam z annotacji, encja w src/App nie wie,
  • Odpowiedz
Trochę się namęczyłem żeby móc używać #nuxt #apollo #graphql #laravel #lighthouse oraz autoryzacji poprzez ciasteczka z Sanctum

Jak zwykle w dokumentacji nie ma nic na ten temat tylko trzeba przeszukać pół internetu może komuś się kiedyś przyda:

import { HttpLink } from 'apollo-link-http'
import { setContext } from 'apollo-link-context'
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Piątek wieczór – czas w sam raz na ostre cięcie na produkcji :-) Dzisiaj krótki wpis, który uporządkuje katalog z klasami migracji bazy danych w Laravel. Z biegiem czasu straszliwie puchnie i warto go co jakiś czas trochę odchudzić.

https://webroad.pl/php/7882-laravel-porzadek-w-migracjach-bazy-danych

#laravel #php #webroad
michalkortas - Piątek wieczór – czas w sam raz na ostre cięcie na produkcji :-) Dzisi...

źródło: comment_1611348695kfKVuW0Mcofs7NIgSYSOpX.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@sheeple:
Mogę wesprzec z tym ze wiekszosc zycia w zendize i symfony, ostatnia larva jakiej uzywalem to chyba wersja 4.
Mogę rowniez pomoc z frontem we vue, ale tutaj co najwyżej poziom juniora zaprezentuje :)
  • Odpowiedz
Głowię się nad rozwiązaniem systemu uprawnień, załóżmy, że w aplikacji mamy model Project i Task, które są w relacji jeden do wielu. Nasz użytkownik ma nadane uprawnienie "read" dla Project ale nie ma uprawnienia do Task, endpoint odpowiedzialny za zwracanie modelu Project domyślnie zwraca relację Task.

Jaki waszym zdaniem jest najlepszy sposób na sprawdzenie czy user ma dostęp do relacji Task i jeżeli ma to wtedy ją zwróci? Zwracać tylko model Project
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Cybe: można na etapie query buldera wrzucić with('tasks') w when który wpierw sprawdzi czy user ma uprawnienie task read. Alternatywnie można to sprawdzać na etapie API Resource/DTO i jeśli nie ma to nie zwracać relacji.
  • Odpowiedz
@maciorqa: To nie jest tak że przechodzisz z jednego na drugi i koniec, drzwi zamknięte. Po prostu pisząc w SF możesz (i powinieneś) tworzyć piękny kod zgodny z dobrymi praktykami, wzorcami itp. W larwie bywa to ciężkie, chociażby z powodu który przytoczyłem wyżej, i kiedy już się znasz i sobie popiszesz w SF, to potem jak wskakujesz na larwę to patrzysz i się odechciewa. Larwa jest super do mniejszych projektów
  • Odpowiedz
@nophp: to jakbym Ci podał paczkę do która integruje się z symfony jako bundle, albo ich oficjalną wtyczkę np do prestashop? też jest napisana niby w php ( ͡° ͜ʖ ͡°) myślałem że potrzebujesz konkretnie pod laravela jak np paypal
  • Odpowiedz
Robiąc coś lekko podobnego do wykopu, typowo pod naukę o marginalnym pewnie zasięgu, ale jednak, żeby funkcjonowało i żeby ludzie mogli dodawać treści - to musze zadbać o moderację takiej stronki? Jest to jakoś prawnie wymagane? Czy mogę sobie np. stworzyć taką czarną dziurę w d00psku internetu, gdzie każdy będzie na siebie wylewać pomyje i wymiotować innym anonom w pysk fekaliami? Jest jakiś wymóg prawny, żeby była cenzura? Czy tylko potwierdzenie 18
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@JamnikWallenrod: proszę bardzo, jak będziesz bogaty sypnij cos:
Uwaga! Publikowane powyżej LINKI/ARTYKULY są prywatnymi opiniami użytkowników serwisu, które dodano po zaakceptowaniu regulaminu. WWW.pl nie ponosi odpowiedzialności za treść XYZ. Jeżeli którykolwiek ARTYKUŁ łamie zasady, zawiadom nas o tym używając opcji "zgłoś nadużycie".

I chyba taki duppchron w stopce czy gdzieś wystarczy
  • Odpowiedz
repozytoria w active record też mają sens bo porządkują model z niepotrzebnej logiki, zwłaszcza ze scope-ów.


@nowiutki: zgadzam się, sam czasem robię, skróciłem w myślach poradę dla OPa żeby skupił się na podstawach w jego przypadku
  • Odpowiedz
php artisan serve - po wpisaniu tego polecenia mam taki bład. O co chodzi? Kiedyś normalnie po zainstalowaniu composera i stworzenia projektu mogłem korzystać z artisana. A teraz taki błąd. W internecie są jakieś rozwiązania tylko pod linuxa. Ktoś coś?

Mcrypt PHP extension required.

#php #programowanie #laravel
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@spaduwa_mam_robote: no premiera była jakos tydzień czy dwa temu. Ja do mniejszych rzeczy to wolę valet a jak mam cos co wymaga wielu dodatkowych rzeczy w systemie to samemu sobie dockera komponuje, ale dam szanse Sail w którymś momencie ( ͡° ͜ʖ ͡°)
  • Odpowiedz
Mirki mam takie coś:
users - id | email_id [...]
emails - id | name

Jak zrobić, aby automatycznie dodawało mi email przy pytaniu o użytkownika?
Stosuje hasOne, getEmailAttribute i protected appends, ale nie działa (
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Zastanawialiście się jak szybko można wygenerować system autoryzacji użytkowników włączając system logowania, rejestracji oraz resetu hasła. W Laravelu można to wykonać za pomocą 7 komend bez pisania kodu. Mówię o bardzo prostym systemie autoryzacji używając Laravel Auth.
https://laraveldeveloper.pl/system-autoryzacji-laravel/

#laravel #php #programowanie #programista15k #informatyka #blog #programista #programujzwykopem #it
yeruvoci - Zastanawialiście się jak szybko można wygenerować system autoryzacji użytk...

źródło: comment_1607972076O5QNpcw8cfOqpXupppIG3l.jpg

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki z tagów #php #ecommerce #symfony #laravel mam pytanie, które skierowane jest do osób z doświadczeniem ze sklepami. Będę stawiał sklep spięty z hurtowniami z dropshippingiem i wybieram technologię po stronie back-endu. Sklep przez pierwszy rok/dwa raczej nie będzie pod dużym obciążeniem. Klient na razie chce przetestować pewien pomysł, a w razie gdyby potrzebne było skalowanie ze względu na wzrost zainteresowania jest gotowy zmienić
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ajgoron:

Klient na razie chce przetestować pewien pomysł, a w razie gdyby potrzebne było skalowanie ze względu na wzrost zainteresowania jest gotowy zmienić technologię.

Jeśli tak to klient powinien zainteresować się SaaSem, a nie stawianiem platformy od zera, bo na początku to ty jako deweloper będziesz dla niego najbardziej zabójczym kosztem w ecommerce, i jest zwyczajnie taniej zacząć z jakimś
  • Odpowiedz
Mirki jak najoptymalniej rozwiązać ten problem:
Front ma listę rzeczy powiedzmy użytkowników, moge ich z frontu usunąć klikając przycisk, potem klikam "Zapisz" i dopiero leci zapytanie do bazy danych z wszystkimi użytkownikami
1. Mogłem dodać jakiegoś uzytkownika w między czasie z poziomu frontu (musi zostac dodany w bazie danych)
2. Mogłem usunąć z poziomu frontu użytkownika (przy zapytaniu powinien być usuwany z bazy danych) - problem w tym, że nie mam go w zapytaniu
Nie może
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@asdfghjkl: @nowiutki: @Hipodups: @MarcelMcOne: @Radaka: dzięki za sugestie ( ͡° ͜ʖ ͡°)
Po stronie vue punkty z typami były ładowane z bazy danych, gdy się dodało je od frontu to id było null.
Po backendzie:
if(is_null) --> nie istnieje, więc create
Jeśli jest id to znaczy, że jest w bazie więc ok
Usuwanie usuniętych po froncie jest robione
  • Odpowiedz