KIM JESTEM?
▸ Michał Taszycki (@mehowte)
▸ 16 lat doświadczenia w programowaniu
▸ Twórca programów szkoleniowych
▸ GraphQL Mastery
▸ Kurs Reacta
▸ 64bites (o assemblerze w Commodore 64)
▸ Organizator Festiwalu React.js i GraphQL
Slide 3
Slide 3 text
GraphQL.pl/devjs
KOD ŹRÓDŁOWY, WSZYSTKIE NARZĘDZIA,
SLAJDY, ODNOŚNIKI I PROMOCJE
Slide 4
Slide 4 text
DLA KOGO JEST TA
PREZENTACJA?
Slide 5
Slide 5 text
DLA KOGO?
‣ Znasz już podstawy GraphQL
‣ Chcesz stworzyć swój pierwszy publiczny serwer GraphQL
‣ Uważasz, że nie da się dobrze zabezpieczyć serwera GraphQL
Slide 6
Slide 6 text
DLA KOGO NIEKONIECZNIE?
‣ Wiesz już wszystko o GraphQL
‣ Radzisz sobie z atakami Brute Force i DOS/DDOS
‣ Nie interesuje Cię GraphQL?
‣ Uważasz, że REST API zawsze wygrywa z GraphQL
DOSTAJEMY 10 000 000 ELEMENTÓW W TABLICY
1000x
10 000x 😱
Slide 55
Slide 55 text
JAK TEMU
ZARADZIĆ?
Slide 56
Slide 56 text
DODAĆ
STRONICOWANIE
Slide 57
Slide 57 text
1. NOWY TYP SKALARNY
Slide 58
Slide 58 text
2. STRONICOWANIE W SCHEMA
Slide 59
Slide 59 text
2. STRONICOWANIE W SCHEMA
Slide 60
Slide 60 text
3. OBSŁUGA W RESOLVERACH
Slide 61
Slide 61 text
3. OBSŁUGA W RESOLVERACH
Slide 62
Slide 62 text
😀
Slide 63
Slide 63 text
😀
10x
Slide 64
Slide 64 text
😀
10x
10x
Slide 65
Slide 65 text
🙂
10x
10x
10x
Slide 66
Slide 66 text
10x
10x
10x
10x
😐
Slide 67
Slide 67 text
DOSTAJEMY 10 000 ELEMENTÓW
10x
10x
10x
10x
😐
Slide 68
Slide 68 text
MOŻEMY ROZLUŹNIĆ
LIMIT GŁĘBOKOŚCI
(ALE NIE WYELIMINOWAĆ)
Slide 69
Slide 69 text
OK
A CO JEŚLI…?
Slide 70
Slide 70 text
KTOŚ PODA ZBYT
DUŻY LIMIT?
Slide 71
Slide 71 text
No content
Slide 72
Slide 72 text
A NIC 😃
Slide 73
Slide 73 text
OK
A CO JEŚLI…?
Slide 74
Slide 74 text
KTOŚ UŻYJE
ALIASÓW?
Slide 75
Slide 75 text
😀
…
Slide 76
Slide 76 text
😀
…
10x
Slide 77
Slide 77 text
😀
…
10x
10x
Slide 78
Slide 78 text
😀
…
10x
10x
+
Slide 79
Slide 79 text
😀
…
10x
10x
+
10x
10x
Slide 80
Slide 80 text
😀
…
10x
10x
+
10x
10x
+
10x
10x
Slide 81
Slide 81 text
😮
…
Slide 82
Slide 82 text
🥺
…
10x
10x
Slide 83
Slide 83 text
😢
…
10x
10x
+
10x
10x
Slide 84
Slide 84 text
😰
…
10x
10x
+
10x
10x
+
10x
10x
Slide 85
Slide 85 text
😭
…
(10x10) x 1 000 000
Slide 86
Slide 86 text
🤯
…
DOSTAJEMY 100 000 000 ELEMENTÓW
Slide 87
Slide 87 text
ALIASY UMOŻLIWIAJĄ
TEŻ ATAKI TYPU…
Slide 88
Slide 88 text
BRUTE FORCE
Slide 89
Slide 89 text
MAMY TAKIE API
Slide 90
Slide 90 text
1. NIE PAMIĘTAM HASŁA
Slide 91
Slide 91 text
1. NIE PAMIĘTAM HASŁA
Slide 92
Slide 92 text
2. PROSZĘ O RESET
Slide 93
Slide 93 text
2. PROSZĘ O RESET
Slide 94
Slide 94 text
3. DOSTAJĘ TOKEN
Slide 95
Slide 95 text
4. ZMIENIAM HASŁO
Slide 96
Slide 96 text
4. ZMIENIAM HASŁO
Slide 97
Slide 97 text
5. LOGUJĘ SIĘ
Slide 98
Slide 98 text
5. LOGUJĘ SIĘ
Slide 99
Slide 99 text
BEZPIECZNE?
Slide 100
Slide 100 text
BEZPIECZNE?
Slide 101
Slide 101 text
NIE MASZ EMAILA I TOKENA?
NIE ZMIENISZ HASŁA
😏
Slide 102
Slide 102 text
OK
A CO JEŚLI…?
Slide 103
Slide 103 text
MASZ EMAIL?
ZGADNIESZ TOKEN?
🤔
Slide 104
Slide 104 text
1. ZGADUJĘ
Slide 105
Slide 105 text
1. ZGADUJĘ
Slide 106
Slide 106 text
1. ZGADUJĘ
Slide 107
Slide 107 text
1. ZGADUJĘ
Slide 108
Slide 108 text
2. LOGUJĘ SIĘ
Slide 109
Slide 109 text
2. LOGUJĘ SIĘ
Slide 110
Slide 110 text
JAK TEMU
ZARADZIĆ?
Slide 111
Slide 111 text
1. GENERUJ BEZPIECZNIEJSZE TOKENY
Slide 112
Slide 112 text
NIE TAKIE!
1. GENERUJ BEZPIECZNIEJSZE TOKENY
Slide 113
Slide 113 text
NIE TAKIE!
1. GENERUJ BEZPIECZNIEJSZE TOKENY
Slide 114
Slide 114 text
🤡
NIE TAKIE!
1. GENERUJ BEZPIECZNIEJSZE TOKENY
Slide 115
Slide 115 text
2. UTRUDNIJ BRUTE FORCE
Slide 116
Slide 116 text
ANALIZA KOSZTU ZAPYTANIA
Slide 117
Slide 117 text
ANALIZA KOSZTU ZAPYTANIA
Slide 118
Slide 118 text
ANALIZA KOSZTU ZAPYTANIA
Slide 119
Slide 119 text
DYREKTYWA KONTROLI KOSZTU
Slide 120
Slide 120 text
MNOŻYMY KOSZT PRZEZ ROZMIAR STRONY
Slide 121
Slide 121 text
MNOŻYMY KOSZT PRZEZ ROZMIAR STRONY
Slide 122
Slide 122 text
NADAJEMY DUŻY KOSZT NIEBEZPIECZNYM OPERACJOM
Slide 123
Slide 123 text
😀
Slide 124
Slide 124 text
😀
Slide 125
Slide 125 text
😀
Slide 126
Slide 126 text
😀
Slide 127
Slide 127 text
😀
Slide 128
Slide 128 text
😀
Slide 129
Slide 129 text
OK
A CO JEŚLI…?
Slide 130
Slide 130 text
KTOŚ PUŚCI WIELE
ZAPYTAŃ?
Slide 131
Slide 131 text
LIMITUJEMY JE
Slide 132
Slide 132 text
ALBO NA POZIOMIE
SERWERA
(TAK SAMO JAK W REST API)
Slide 133
Slide 133 text
ALBO NA POZIOMIE
ZAPYTANIA
GRAPHQL
Slide 134
Slide 134 text
DODAJEMY DYREKTYWĘ RATE LIMIT
Slide 135
Slide 135 text
DODAJEMY DO KONTEKSTU IDENTYFIKATOR KLIENTA
Slide 136
Slide 136 text
KONFIGURUJEMY DYREKTYWĘ RATE LIMIT
Slide 137
Slide 137 text
DEFINIUJEMY DYREKTYWĘ W SCHEMA
Slide 138
Slide 138 text
DEFINIUJEMY JAK CZĘSTO MOŻNA WYWOŁAĆ
ZAPYTANIE/MUTACJĘ
Slide 139
Slide 139 text
No content
Slide 140
Slide 140 text
😀
Slide 141
Slide 141 text
2 SEKUNDY PÓŹNIEJ
Slide 142
Slide 142 text
😀
2 SEKUNDY PÓŹNIEJ
Slide 143
Slide 143 text
TO WYSTARCZY
NA POCZĄTEK
Slide 144
Slide 144 text
1.OGRANICZ GŁĘBOKOŚĆ
Slide 145
Slide 145 text
1.OGRANICZ GŁĘBOKOŚĆ
2.STRONICUJ DANE
Slide 146
Slide 146 text
1.OGRANICZ GŁĘBOKOŚĆ
2.STRONICUJ DANE
3.OGRANICZ CZĘSTOTLIWOŚĆ
Slide 147
Slide 147 text
1.OGRANICZ GŁĘBOKOŚĆ
2.STRONICUJ DANE
3.OGRANICZ CZĘSTOTLIWOŚĆ
4.ANALIZUJ KOSZT (OPCJONALNIE)
Slide 148
Slide 148 text
A PRZEDE WSZYSTKIM
Slide 149
Slide 149 text
MONITORUJ ZAPYTANIA!
(MUSISZ WIEDZIEĆ KTO, KIEDY I JAK CIĘ ATAKUJE)
Slide 150
Slide 150 text
CO WIĘCEJ?
Slide 151
Slide 151 text
OWASP - GRAPHQL CHEAT SHEET
Slide 152
Slide 152 text
MACIEJ KOFEL - HACKOWANIE GRAPHQL
Slide 153
Slide 153 text
No content
Slide 154
Slide 154 text
GraphQL Mastery
Slide 155
Slide 155 text
GraphQL Mastery
Najlepszy sposób na naukę
Full-Stack GraphQL od zera
Slide 156
Slide 156 text
GraphQL Mastery
Nauczysz się GraphQL w praktyce.
Zrobisz:
1. Backend
2. Frontend
3. Deployment
Nawet jeszcze dziś
Slide 157
Slide 157 text
✓ 7 modułów lekcyjnyc
h
✓ 158 lekcji wideo (23 godziny materiału
)
✓ 12 miesięcy dostępu do materiałów i aktualizacj
i
✓ 12 miesięcy dostępu do grupy wsparcia
GraphQL Mastery
Slide 158
Slide 158 text
KOD ŹRÓDŁOWY, WSZYSTKIE NARZĘDZIA,
SLAJDY, ODNOŚNIKI I PROMOCJE
GraphQL.pl/devjs