← All talks

SQL Injection — omówienie i prewencja w Django

BSides Warsaw · 201952:25633 viewsPublished 2019-10Watch on YouTube ↗
Speakers
Tags
CategoryTechnical
StyleTalk
Mentioned in this talk
Frameworks
About this talk
Adam Wołk Adam Wołk jest deweloperem w firmie Fudo Security gdzie zajmuje się rozwojem backendu w C oraz bazą danych PostgreSQL. Jego głównymi zainteresowaniami są szczegóły implementacyjne baz danych oraz bezpieczeństwo ogólnie pojętych systemów informatycznych. W 2014 roku rozpoczął przygodę z OpenBSD a od 2016 jest committerem w projekcie. Jest również współorganizatorem polskiej grupy użytkowników BSD: Polish BSD User Group. W przeszłości, tworzył aplikacje webowe, rozwijał centralny system bankowy oraz platformę IoT dla golfistów. W tym roku po raz kolejny mieliśmy okazję spotkać się wspólnie na #BSidesWarsaw. Ale czym dokładnie jest BSides? Polska edycja powstała w 2011 roku i jest częścią międzynarodowego wydarzenia z serii Security BSides. Marka ta na całym świecie znana jest jako impreza o charakterze silnie społecznym i wyjątkowym. Te same idee przyświecają nam podczas organizacji polskiej wersji BSides. Chcemy utrzymywać wartości zapoczątkowane przez pierwotnych organizatorów i tworzymy wydarzenie non-profit, prowadzone przez społeczność i dla społeczności. Oddajemy się całej sprawie w 200%, działając przy organizacji wydarzenia w ramach wolontariatu, aby z #BSidesWarsaw stworzyć platformę dla wszystkich. Środowisko, w którym każdy od początkujących do doświadczonych profesjonalistów ma szansę do zaprezentowania swojej pracy w przyjaznym i otwartym otoczeniu. BSides nie konkuruje z żadnym innym wydarzeniem. Celem jest i zawsze będzie poszerzanie spektrum rozmów, prowadzenie dialogu oraz stworzenie platformy dla wszystkich zainteresowanych bezpieczeństwem.
Show transcript [pl]

w tym tygodniu odbyła spoko nara adam bóg przed wami he adam to opowiedz o sobie miłej zabawy dziękuję jeszcze raz witam wszystkich dzięki że przyszliście wiem że na widok eksploratora czekamy mam nadzieję że was tym dzisiaj nie zanudzę ja nazywam się adam o nie ten adam w z poprzedniej prezentacji przynajmniej nie jestem świadomy że posiadam konto na portalu pracuję w firmie security gdzie zajmuję się nią backhandem i bazami danych głównie pod wykresem wcześniej 4 lata pracowałem w start-upie gdzie również zajmowałem się pod wykresem i masę innych rzeczy jak to startuje a jeszcze wcześniej 7 lat pracowałem w sektorze bankowym i tworzyłem centralny system bankowy w oparciu o raku sql a i prawdopodobnie gdzieś tam mój kot

naliczane odsetki nawet jeżeli nie macie bardzo przepraszam jestem też deweloperami openbsd i zespół organizuje tutaj w warszawie grupy użytkowników building prowadzę bloga czasami tam tyle o mnie teraz poniżej kto z was o tym słyszał o łapce w górę pełna sala kto wie jak tego jak to eksportować jak to użyć masz na blogu sporo nie mam na blogu przykładów to przeważnie bloguje o w następnej stronie dobrze to czekam na wyniki okej w takim razie co to jest żebyśmy byli na jednej stopie chociaż wszyscy tutaj raczej mieli styczności wiedzą nawet jak to eksportować description to jest nadużycie zaufania bazy danych wobec aplikacji i aplikacji w użytkownika czyli najprostszy przykład mamy gdzieś jakąś wyszukiwarkę użytkownik sobie wklepuję w nią jakieś

hasła znajduje sobie dokument jest zadowolony to co użytkownik sklepu aplikacja doklejamy jakieś zapytania to zapytanie leci do bazy dostajemy wynik jesteśmy zadowoleni problem pojawia się wtedy kiedy do tej aplikacji świata atakujący ktoś rozmiarach i stwierdza aha ten deweloper może nie pomyślał i wklej to co ja tam wpisane do spa pewnie dlatego zapytania jeżeli tak zrobili baza danych w tej aplikacji to po prostu tą komendę wykona dlaczego ja to oddzielam może się nie spotkali się z takim poziomem zaufania bazy danych do aplikacji ponieważ baza danych wcale nie musi używać aplikacji można stosować widoki można stosować ograniczenia uprawnień aplikacja nie musi działać na koncie administracyjnym nie musi mieć prawo czy to do wszystkich tabel i niekoniecznie musi mieć możliwość wykonania select a w

użytkowników razem z zasadami i kwasami tak teraz pytanie jest takie czy to jest nadal poważny problem jeżeli ktoś się zastanawia co ten uroczy owad pochodzi z prezentacji o a to jest na creative commons jeżeli ktoś potrzebuje licencji oraz publikuje taką statystykę top 10 błędów w aplikacji webowych i od dawno dawno dawna od dawna byłem na pierwszym miejscu jest występuje właśnie błąd jest kolejna rzecz syn a tak naprawdę generalny indeks cen ponieważ wyszukiwać nie możemy tylko sql a do baz danych arkuszy to jest wstrzykiwać komendy jeszcze nowe do aplikacji które nasza aplikacja gdzieś tam wywoła czy masę innych po prostu rzeczy wszystko to ma jakiś interpreter partner do co przyjmuję jakiś język który być może dynamicznie budujemy albo przekazujemy

do czegoś w jakiej aplikacji parametr tam możemy to wstrzykiwać tego xd pewnie większość z was widziała a przynajmniej każdy kto się kiedykolwiek zetknąłeś zespołem indiggnation polega to znaczy bardzo prosta historia tak do mamy dzwoni z koła od jej tam syna że mają problem z komputerami taki problem czy naprawdę nazwała pani swojego syna robert apostrof zamknięciu nawiasu średni wzrost ten był studentem z średnio 2 myślniki no tak a co no straciliśmy wszystkie dane naszych studentów mam nadzieję że jest pani zadowoloną a ja mam nadzieję że cieszycie się nauczyć się kontrolować swoje dane wejściowe tak i przejdźmy po tym przykładzie chciałbym żeby naprawdę każdy poczuł jak taki błąd się wykorzystuje jako nie jest wykonywany i to nam pomoże się przed tym

być może bronić także to jest ten będę starał się to nie czytamy wielokrotnie w języku i na tym poziomie przepraszam was to imię naszego kolegi będziemy od tej pory mówisz robert wyobraźmy sobie jakiś formularz być może rejestracji albo logowania to tak troszeczkę abstrakcyjne i mam nadzieję że mi wybaczycie wyobrazimy sobie jakiś kot który być może jest tam na backhandzie zaimplementowany który to w niepoprawny sposób obsługuje ja wiem że stosujemy do tego dojdziemy później spokojnie to jest przykład więc mamy następującą sytuację przychodzi normalny użytkownik rejestruje się wpisuję że mam na imię john gdzieś tam na backhand trafia to w zmiennej name ktoś sobie to zinterpretował z treningiem incydentu studentem boli was proces naleśnikach oczy w pojedynczych obu stronach tak

wygląda to następująco deska która trafi do bazy danych bazy danych wykonamy johna w bazie danych i wszyscy są zadowoleni spoko i to jest dobry przykład a teraz przychodzi robert grzecznie wpisuję swoje imię tutaj widzę że mam błąd na slajdzie nie zaprojektowałem on zacznie wpisuję swoje imię i tutaj się pojawiają się problemy ten kod obsługi to tak jak poprzednio przypadek poprawny natomiast to co zobaczysz baza danych po przejściu przez całe driver was wesołych tym przypadku wszystkie moje przykłady będą podkręca natomiast to jest szalony na wszystkie bazy danych mniej więcej każda się w taki czy inny sposób będzie tak samo zachowywać i być może lekko się wyróżnić drivery czy składnia tutaj jakąś używacie baza danych zostanie takie zapytanie i

będzie je interpretować następujący sposób internet jest studentem values robert i pierwszy apostrof zakończył nam tym trening następnie na czerwono już widzimy ten wrogi impuls który nam podoba użytkownik czy to pierwsze zamknięcie nawiasu i to się skończyło dla bazy danych pierwsze zapytanie czy ona jest wykonana ze stali rekord a w stanie rekord do studentów z imieniem robert i super nie o to chodziło tylko problem jest taki że to nie jest konieczne jego imienia oddalają się nazywa dropbox student za średnikiem i to jest nadal poprawna składnia i nasza aplikacja ma najwyraźniej uprawnienia do tego idealnie mam tabelę w której przed chwilą zrobiliśmy rekord no to podanych a teraz po co na końcu mamy te dwa głośniki ponieważ w tym oryginalnym punkcie który

przewidział deweloper coś potem procent było jako atakujący chcemy żeby się nie wykonał to polecenie z błędem bo wtedy bazy danych na modlitwie transakcji kurczę te nasze zmiany się nie wykonają więc najlepiej jakoś powiedzieć słuchaj to co tam było to zignoruj i komentarz w ten sposób ktoś nam zaatakował aplikację do konta będę mógł zrobić coś innego mógł wyciągnąć dane takich możliwości jest wiele wyobraźcie sobie troszeczkę inny przykład powiedzmy że macie portal zaimplementowany po staremu tutaj na przykład ten który tam kolega pokazał gdzie wchodzimy i podajemy adres naszego konta żeby zobaczyć swoje trakcie klikamy w mój profil to tak naprawdę w celu ładuje nam się jakieś tam anglii i tutaj jest nasz identyfikator konta ja wiem że

moglibyśmy mieć jakieś błędy numeracji tak żebyśmy sobie podbijali powiedzmy taki ale załóżmy że tam jest taki który faktycznie sprawdzić czy ta osoba zalogowana uprawnienia do dostępu do tego kontaktu z podanych parametrów spoko natomiast jeżeli to jest bezpośrednio przekazywane do sql a bez żadnej organizacji również możemy mieć taki przypadek jak w poprzednich jak poprzednim razem mamy gdzieś w wyobrażenie tego kodu jak to może wyglądać no wiesz jestem królewscy pojedynczym katastrofach interpolacja betonowym operacjom tego ciągu do naczyń podanej zmiennej do tego zapytania no i co się stanie w stanie się tyle że baza danych wykonał to zapytanie będzie bardzo tutaj zapytanie 2 tak jak w poprzednim przypadku jak zmienia się tak kwerenda podaj mi wszystkie dane konta gdzie identyfikator

spusty ciąg znaków więc takiego kontaktu nie ma lub takiego gdzie jeden jest równy 1 to jest zawsze prawda więc tak naprawdę moglibyśmy określić cały ten warunek po tym wszystkim konto jeżeli to jest jakimś frameworku to może framework nawet zrobić tą robotę i wyświetli to wszystko na ekran główny tabelce a być może nie do której my kropka jason do izraela i wyświetli nam się tutaj tutaj koledze dwa byliście w stanie których życie do jakiegoś króla albo zaimportujemy do excela i zrobimy z tym cuda tak to działa w skrócie ponieważ pokazałem dwa przykłady ataków takich narzędzi atakujący ma bardzo wiele może robić byłem bling bling bling bling undyne na czym to polega na tym że my nie zawsze nie zawsze atakujący musi

widzieć w ogóle wynik tego co zrobił informacja trzy strony wrzuciła się błędem czy zakończyła się operacja poprawnie może nie ma żadnego wycieku danych w sensie nie wraca rekord którą możemy przeczytać ale sam fakt że kot po stronie bazy się wykonał lub nie będzie zdradzać linkować by pobawić jakieś informacje na przykład moglibyśmy sobie wyobrazić w której ok chciałbym sprawdzić co się znajduje w jakimś polu z tokenem i wiem że takie pole istnieje w bazie danych albo jest zgodne z przepisami zapytanie gdzie w go zgubiłem będę porównywał po kolei znaki tego pokemona i badając response aplikacji tam gdzie i zwraca 200 albo tamtym i zwraca 404 albo jakieś 500 internet serwer tak będzie wiedział że to co podają w tej którą zrobiłem

było poprawne czy faktycznie ta wartość jest na tej pozycji w tym polu lub nie w ten sposób by wyciągnąć te informacje co jest faktycznie w tym jednym konkretnym pomimo że to pole jest i na aplikację i nigdy nie wróci ogólnie zobaczeniu wyniku tego zapytania tam blind to jest podobne operacje tylko oparta na tym że będziemy korzystać z funkcji opartych na czasie żeby badając czas odpowiedzi serwera stwierdzić czy wykonałam się jakaś ciężko to nie tylko dało o wiele baz danych ma własnego czas jakieś funkcje które wykonują się pewien czas na przykład pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip

pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip

pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip

pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip

pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip

pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip pip

pip pip tym byłem sprytny i upewniłem się że driver mojej bazy danych przekazuje tylko jedno jedno pytanie jeżeli tam będą dwa to aplikacja z użyciem błędy tak więc nikt i nic nie dostaję nie do końca ponieważ w ogóle jest bardzo złożonym językiem można zrobić w takim zapytania w niemal i dociągnąć z danymi tabeli zupełnie innej tabeli po prawej zapytanie baza danych złączce danych z tymi danymi które macie z tego pytania i atakującej wylizuje zupełnie nową tabelę niż w tym pierwotnym zapytaniu to nie jest problem z tak triz to jest zrobione z tego powodu że to jest przykład który wcześniej widzieliście czyli dotknęliśmy zapytanie do istniejącego zapytania tak robił robert w użytkowników autofan to jest ciekawy sposób eksploracji danych

gdzie do zapytania możemy i mówię bazy danych mają masę narzędzi można na przykład robić rekordy dns https w ten sposób blokować kanałami które czy widzieliście dane bezpośrednio z bazy na przykład zmuszając do zrobienia kilka słów na dns poprzez generowanie kosztów waszego zapytania z tymi danymi które chcecie wyeksportować i wiele innych a teraz powiecie to jest wszystko skomplikowane jak nie my to kto ją by się chciało no atakujący jest tak samo leniwy i liniowy jak my więc jest masa to litera to zrobić za niego i ta lista którą widzieliście poprzednio tam link pochodzi ona z dokumentacji sql mapa i sql map jest automatyczny narzędziem które wskazaliśmy po prostu na aplikację będzie próbować zgadnij jaka to jest

baza danych na podstawie komunikaty błędów jakie otrzyma zastosuje znane metody ataku i po prostu wyciągnięte informacje z naszej bazy nie potrzeba do tego eksperta który drzewa w tych badaniach od wielu wielu lat po prostu zrobić z niego narzędzie więc no stoimy próbujemy się bronić przed czymś co jest zautomatyzowane a ochronę przed tym wcale zautomatyzowana nie jest i być może dlatego też to jest na pierwszym miejscu łatwo tak dawna no i teraz tak na domiar złego nie tylko formularze są problemem jest wiele wektorów jaki można zaatakować aplikacje powodując błąd typu engine z zaświatów okresowego takim ciekawym przykładem jest motyw i nie wiem ile osób zna ale to jest taki mechanizm jak serwisowe publishers subscribe gdzie możemy zostawić swoją kolejkę wysłaniu

powiadomienia i to działa bardzo fajnie nie wszyscy korzystają ale czasami gdzieś skorzysta problem z tym jest taki że to nie ma żadnej kontroli dostępu w zakresie każde konto który ma możliwość połączenia się z bazą danych jest kontrola dostępu pod tym kątem że musi to być konto który ma dostęp do bazy danych ale może każdy może wysłać dowolną wiadomość na dowolny kanał i osoby otrzymujące wiadomości nie ma jak zweryfikować konto one pochodzą więc jeżeli byście stali się go zabezpieczyć swoją aplikację poprzez stosowanie wielką w bazach danych z uprawnieniami i zauważyliście że te wiadomości które przychodzą po tym takimi pc po tym publicznym serwerze z jednego końca do drugiego są bezpieczne nie do końca bo no niestety konto które wydawałoby się

że nie zrobił nic złego może to być przejętym przez użytkownika i mimo że on miał jakieś prawa tylko do odczytu do widoku jakiegoś i nie miał mieć prawa generowania jakiś notyfikacji czy tego typu rzeczy to będzie w stanie to zrobić ponieważ jest to po prostu ograniczyć apetyt plików może spowodować że gdzieś później w dalszej części aplikacji spowodują a skończywszy na przykład prosty przykład wyobraźmy sobie portalu na który uploadujemy zdjęcia i chcemy wyciągnąć z tej z tego zdjęcia dane cyfrowe więc ktoś tam odpala sobie w terminalu to lato a fajnie że oprócz tego iksa wstawię do bazy danych super nie tylko teraz pytanie czy zwariowaliście to ten który być może ktoś tam wstawił jakiś tam znaków który

wywołuje składa tak westeros.pl jest czymś takim spotkaliście ale przykładowo wyobraźmy sobie bloga na blogu pozwalamy ludziom komentować swojej postaci jest i nie chcemy żeby się dyskusje rozwijały więc pozwalamy ludziom decydować nawzajem specjalną składnią i teraz mogliśmy zrobić poprawną walidacji danych przy zostawiania komentarzy ale pamiętajmy o tym żeby dobrze obsłużyć cytat bo może się okazać że dane również rozstawione zaufaliśmy im wstawiamy cytat w tym cytacie pojawia się z wiekiem poprzez właśnie to że drugi raz wypuściliśmy coś przez walidację albo zajechaliśmy jakieś przypuszczenia i nie uwzględniliśmy tego że atakujący poszedł o krok do przodu tak ktoś zapytuje mnie i wtedy mój boli oraz od pr-u wiele innych przykładów do teraz znalazłem fajne przykład sieci nie wiem kogo obserwować co to zdjęcia ale

jeżeli jest na sali to dzięki jest świetne jak nie to proszę się zgłosić hipoglikemii przekazać te informacje kto to był mamy jakiś system podejrzewam że w polsce do czytania tablic tak samochodów może gdzieś na przejazd autostradą czy coś tego typu i tu widać świetny przykład ktoś dokończył najwyraźniej uznał strukturę tej bazy i wie że tam w miejsce gdzie w trafia na tablicy po nim są jeszcze dwa pola w których przekazuje zarobki jakąś nową wartość nieważne kto to zrobił albo kiedy poprawną wartość tablicy czy ten pierwszy nic nam się nie zawali następnie drukujemy bazy danych tablica tak i kończymy zapytanie dwoma głośnikami żeby wszystko było wcześniej się nie wykonało genialny przykład i teraz pytanie czy deweloper kiedykolwiek

widział że ktoś w ocenzurowanej tablicę spróbuje zrobić skrót inline podejrzewam że w tym wypadku to się nie zdarzy ale możemy sobie wyobrazić na przykład jakiś system który automatycznie nagrywa ekran użytkownika potem oferuje go i no i to gdzieś trafi do paznokcia do przeszukiwania tak witam jestem zwolennikiem czy nie prezentacja co można zrobić żeby się przed tym szaleństwem bronić i czego szukać jak próbujecie im jakąś aplikację ze sobą na przykład zbadać pod tym kątem albo wyeksportować coś bądź sobą zalecenia ogóle takie trochę ode mnie trochę o to łapa ode mnie dobre api stosowanie parametrów gwintowanych stosowanie peelingów które mają dobre ale do tego dojdziemy generalnie jeżeli trudno się sobie czymś co jest w tobie to super

najgorszym przykładem tego jest kurs w pythona do którego mówię także zostawimy to na następny slajd najlepszymi metodami w ogóle jest a i testowanie czyli wszystkie parametry jakie przychodzą do od użytkownika nigdy ich nie stosuje się do bezpośrednio widziałem wczoraj tutaj koszulce problem i to jest moment dla was boberpl to rozwiązał dawno temu mieli taką flagę ted harry potterze i to polega na tym że wszystko co przyszło z questów cały dzień i nie można tego bezpośrednio użyć internetem i pozwalają trzeba było ekspansji wypracowywać wartość parametru do osobnych zmiennych i dopiero wtedy można było użyć to polega na tym że my znamy wszystkie wartości jakie są poprawne nie staramy się odfiltrować czegoś co jest złe w etwinningu też

myślę że nie muszę na tej samej sali tłumaczyć natomiast ty tak powinno być zrobione jeżeli chcemy na przykład umożliwić bo czasami trzeba pozwolić komuś na w pewnym sensie budowanie dynamicznego składaniem to będzie jakieś generowanie raportu i trzeba pozwolić jaki to będzie struktury czy to będzie chociażby jakiś sortowanie trzeba uwzględnić to będzie ostatnim dostępnym czy w jakimś konkretnym celu który może być dynamiczne to wtedy broń boże nie dodajemy w parametrów mary gdzie pozwalamy wpisać adres c d c e i tak dalej tylko przyjmujemy na przykład wartość up down robimy sobie w hamaku tego jak użytkownik pisałam to zmieniamy to na string descent tak deski lub downa i tak dalej i to dopiero dopiero tam swoją wartość którą my znamy wiemy że

pochodzi od nas wspierają używamy w naszym sql nigdy to co napisał użytkownik bo nie zawsze to będzie w dobrej wierze wprowadzone unikamy dynamicznego składa tam gdzie możemy wiem że nie zawsze się da ale starajmy się tego po prostu unikać limity to jest fajna rzecz którą warto robić dużo frameworków robi to by telefon na przykład django na czym to polega na większość zapytań nie musisz wracać do bazy danych prawda rzadko się zdarza że chcecie nie wszystkie rekordy użytkowników wyświetlić i dobrze jest zapytać nawet które nie mają jakiegoś specyficznego limitu mogą zwrócić pewną prawną porcję danych nawet jakieś górny limit rekordów 20 rekordów jak wam się powinien noga i będzie tam wspólnym projektem to dobra to dalej będzie wyciek to dalej

jest problem ale po 20 rekordów naraz i być może szybciej to znajdziecie że ktoś tam trzeba wasze opinie jak to zrobić raz ale to nie jest to co jest najfajniejsze rozwiązanie tak przeglądy kodu to jest najbardziej skuteczna metoda zaraz po liftingu i z tym się też zgadzało łask róbcie przeglądu każdego składnik się pojawia w naszej aplikacji bo w ten sposób najszybciej znajdziecie problemy i analiza statyczna kodu i tutaj przykład taki fajny przygotował dla mnie kolega z pracy to może uda mi się to jest narzędzie bandit napisane w pythonie ono czyta drzewo st pytania więc to nie jest jakiś tam wyszukiwanie tekstami gdzie się pojawia w kodzie sql i to jest taki całkiem fajny przykład tutaj nie widać całego tego który bank

zostało nam tylko z trzema trzema metodami które sprawdzą tak jakieś bez tej sytuacji 611 610 one są odpowiedzialne za joan ponieważ nasze narzędzie sprawdza to jest generalnie internet dużo więcej rzeczy sprawdza natomiast w tym wypadku był odporny na school education gateway przykład poprawnego użycia kurek youtube to nie ma błędu natomiast jest błąd zinterpretowane jest nazwa tabeli i użyty by to nowy format i to jest kornik bo w zanim to trafi do skórek tutaj jest zaskakujące może wprowadzić co chce nie sprawdzałem co faktycznie to znalazł czy mi się tylko wydaje i otoczyliśmy tego format a nawiasami żeby się upewnić że nie szukał spring w którym występuje format i dalej to znalazł i użyliśmy poprawnego api też z

tej kupić 2 tam jest sql sql który też mamy to format która też ma taką samą dokładnie do tego też wyjdziemy i to jest troszeczkę triki i wtedy wiedział że to jest poprawione więcej taki głupi nie jest natomiast trochę farby z pozycji w na pewno też z tego będzie fajnie odpalić raz na jakiś czas takiego tutaj przyjść jego wyniki natomiast no nie ukrywają ukrywają nie ma co ukrywać że na to będzie dużo osób jest w stanie w pełni to nie zastąpi to jest fajny dodatek następnie co można zrobić więcej można stosować preferowane zapytania bazy danych oferują w taką funkcjonalność możemy jeżeli wiemy że mamy to pytanie które wykonujemy wielokrotnie możemy powiedzieć bye okay masz tutaj jest dla

mnie abym go do podstawy dwa parametry bo to wywoływał pod taką nazwą i tylko te parametry się zmieniać bardzo zajęty pracuje raz i potem za każdym razem będziemy używać tylko tam nie ma już wtedy jak wstawić niepoprawnych wartości ponieważ pracowałeś wystąpiło jest to też wydajniejsze niestety nie każdy driver to udostępnia tylko pg2 tego nie robi korzysta z półek z funkcji w c z e płozy grafa mają w planie korzystać z reklam w psychologii 3 ale do tego jeszcze troszeczkę daleko można ręcznie utworzyć zapytania preferowany natomiast to już będzie naszej aplikacji potrzebujecie w danym momencie można stosować procedury składowane żeby budować pewien sens w pewien sposób ograniczony interfejs do tej bazy widoki i ograniczyć uprawnienia czy to poprzez rolę wobec security albo

uprawnienia do tabeli bo być może aplikacją się czytać wszystkiego na tych trzech to metodach czyli procedurę składowanych widok ograniczonych uprawnienia kiedyś zbudowałem mechanizm autoryzacji w kongresie który polegał na którym udział w mniej mniej więcej w następujący sposób w użytkownikami które oczywiście było lekarzem natomiast był wystawiony na widok bez tego hasha bez sal czyli nie mógł po prostu tej kolumny aplikacja webowa mogła czytać cały widok więc nie miała dostępu do końca mogła wykonać procedurę składowano ta procedura składowane miała dostęp do tego pole z hasłem mogła wykonać funkcję skrótu i porównać wyniki z tym co było zapisane odwróć informację czy użytkownik został zaktualizowany więc nawet jeżeli ktoś by nam smakowało tą aplikację uzyskaj taki sam dostęp do

tej bazy danych na tych samych uprawnieniach to może wystawić wszystkich użytkowników ale już nie i hasła ponieważ do tego nie ma dostęp innym ciekawym przykładem jest na przykład spad w zakresie i to też warto po prostu zagłębić się w bazy danych jak ich używać i jakie metody mechanizmy ona udostępniana albo jakie pułapki się w niej znajdują bo serce pad jest trochę taką pułapkę w kongresie to jest coś takiego jak paw w marszu tak czy w jakimś innym jakiejś innej podłogi powłoce polega to na tym że baza będzie najpierw przeszukiwać rzeczy w schematach podanych według tej ścieżki do myślenia na początku jest public więc i w domyśle też będzie twoje obiekty będą też domyślnie tworzone w pliku więc

wyobraźcie sobie sytuację że macie wiele aplikacji jednej bazie danych i każda z tych aplikacji korzysta z różnych schematów i tak są izolowane od siebie natomiast wszystkie mają wspólnego pastwiska więc jeżeli ja wiem że ja mam aplikację a może jakieś resztki zamku schemacie adam i ktoś inny ma drugą aplikacje schemacie x i ja wiem że wielu aplikacji jest jakaś struktura jakiś nazwie która mogłaby to zrobić taką które to zamaskuję i możemy zrobić z twojej struktury zarobią zrobiłem publicznie więc warto je zawęzić tego serca to dla niego dotarliśmy troszeczkę dodam go w końcu to co jakiś czas stoję ok i to ludzie no to nie będę przyśpieszał w takim razie w jeżeli chodzi o oczywiście stosujemy kolor gemma

natomiast w większości przypadków nie stosujemy samego rana jesteśmy relatywnie bezpieczni rzadko się zdarza że byłem wygenerował charyzmy jest to błąd w formie i tak mielibyśmy problem natomiast nie wszystko da się razem zrobić i pojawia się w tym numerem je surowe sql bardzo bardzo często jeżeli pracujecie z dużymi aplikacjami to na pewno widzieliście że pojawiają się pojawia się w nich sylwester czy to z powodów wydajności owych trzech powodów po prostu wygody ponieważ łatwiej napisać z serwerem niż złożyć jakiegoś potworka zbiorem a i takich mechanizmów django posiada kilka dni mrgrow.pl ekstra wkrótce nowe wyrażenia które tam napisaliśmy i będziemy stosować są przykładowo wdzianko zdefiniowanych jest kilka podstawowych takich wrażeń przykładowo komplement to są przeważnie funkcję albo jakiś złożenia na języku które stosujemy

potem w liście parametrów możemy pisać własne i tam też można popełnić błędy i pusto mowy sql to jest prawie to samo co sql to jest tak naprawdę sięgnięcia do drewna w głąb podbijam go i ominięcia a nie ma no to najpierw jest cool na górze mamy zły przykład czyli jak nie powinno się tego robić na dole mamy dobry przykład to jest tym przykładzie pierwszy z nich to jest poprawne wywołanie ale błąd jest tutaj proces został zakończony pojedynczym apostrof m to powoduje to pomimo tego że wydawałoby się że ten kod przyjdzie nam przez witamy w dying light to przepuścić przez długie lata który uciekł nam wszystkim niebezpieczne znaki ale ponieważ tutaj jest dodatkowy znak to pozwala tak

naprawdę dalej wykonać biedny kot ponieważ to się zaraz wyklepie to jest skierowane do kończy się ich w kontekście po prostu wykonaj jako dodatkowy kod qr w drugim przypadku mamy ten sam problem ale spowodowane tym że stosowane jest interpretacja znaków pytanie czyli pomijamy driver pomijamy więc wysyłamy tak naprawdę składa takiego atakujący chciał wysłać do bazy danych poniżej mamy poprawne poprawne przykładu życia czyli procedura jest przekazanie parametrów formie to b lub procent z nazwą i przekazanie słownika w którym teraz się znajdujemy w tym wypadku musiałby to być klucz o nazwie line i to są poprawne przykłady tutaj co jest ważne w tvp2 nie pozwala bazie zrobić tego zgrupowania to robi to samo po stronie pythona więc to zostanie

zrobione zanim to dotrze do bazy natomiast to jest właśnie bezpieczne podejście jeżeli jest podane drugi parametr i nie ma tutaj żadnych dodatkowych sekwencji trzech największych katastrof którymi próbujemy odcinek znaków to zrobić drajwer białego extra extra stosuje się wtedy kiedy chcemy dokleić coś do istniejących zapytań sql owych przykładowo chcemy mieć dodatkowe parametry w trakcie chcemy nie wiem jaką się jakieś pole przepuścić przez jakąś funkcję jakiegoś pacjenta czy chcemy zrobić jakieś zapytanie jest inny i tabeli albo z innego miejsca w systemie i tutaj taką najprostszą drogą jest to że ekstra to jest to samo co wow więc stosuje się tak samo jak poprzedni przykład to znaczy w każdym intelekt nie można otaczać proces pojedynczymi albo strachami i parametry muszą być

przekazane wcale kwadrans a nie zastosowana jakakolwiek forma interpretacji interpretacje pytanie czy to był numer stringi czy format czy proces nie powinno się go stosować jak widzicie to przez wielu z pewnymi wyjątkami do których dojdę to jest to prawdopodobnie skończy i poprawny czy niepoprawny przykłady zarówno dla wektora a jak i wektora b lat stosujemy kiedy chcemy coś do picia aloe vera który wygląda rowerem też korzystamy z paparazzi to jest to samo co miał grecku i parlament tylko doklejone dokładnie wygenerowanego przez telefon kolejny przykład i to jest jedna z takich większych powiedziałbym pułapek ekstra chcielibyśmy dodać tabelę i być może to jest to się może zdarzyć przy jakimś raporcie gdzie chcemy to ściągnąć dane z czegoś innego to możemy założyć

że skoro to jest już lista kabel tablicy tak listę tabel to pewnie to przechodzi przez jakąś walidację po stronie serwera no to inaczej bo tak zaimplementował no niestety nie okazuje się że to co czekajcie tutaj jako argument w tej tablicy będzie bezpośrednio sklejone do składania którego używa się na żywca więc jeśli wkleicie tam jakieś inne zapytanie tego zrobiłem tutaj to element bardzo szczęśliwy i wróciłam wstrzyknięte użytkownika w tym wypadku jak widzicie to jest podstawiony z intelekt to jest tutaj z nami przeze mnie wygenerowany w którym pracuje nazywanym pulą do tego czego się spodziewałem a to jest przykład paskudny znaczy po prostu w życie na początku niestety wygląda ale tak się pobrać poprawnie w tvp2 ale spróbuję nazwy

tablic czyli korzystać z kąpieli 2 lvl tablicy i to jest skontaktowanie się do tekstu z użyciem połączenia z bazą danych żeby to zostało poprawnie skalibrowane no i kosztem expression to są elementy w których definiujemy własną strukturę języka to jest taka sytuacja polegające na tym że mamy komplet do tego typu to są wstawiane wrażenia oraz dodatkowe argumenty i tutaj ważne jest to że before to było expression czyli te wyrażenia są przepuszczane przez kemping więc nie przepuszczamy ich jeszcze raz wprowadzimy błąd natomiast ekstra nie są przepuszczane przez kemping więc nie przepuszcza my sami przez skype jeżeli tego nie zrobimy albo pomyślimy co przepraszam rób co nieco wprowadziliśmy właśnie skończyłem i podobnie ekstra zwykłe to jest funkcja którą się

denerwują się definiuje w ramach tego wyrażenia ona wygeneruje to co nie nam driver podbródkowy i w niej też ekstra kontekst nie jest przepuszczany przez skype i to jest nasz obowiązek przepuścić to przez kemping natomiast odnośnie ten sam na sam z tych klauzul ekstra to w dokumentacji django deweloperzy proszę żeby tego nie używać z tego powodu że chcieliby żeby pokazać żeby zwykłego a4 satynowe generalnie były w stanie wszystko zrobić więc proszę nie możecie czegoś zrobić zwykłym kartonowym pudle sercem to załóżcie dla nas i to znaczy go tam specjalnie my się tym zajmiemy i proszę usunięcie kiedyś to były tego interfejsu już nie rozwijamy więc jak widzicie w ogóle u siebie w aplikacji użycie ekstra to prawdopodobnie trzeba

się zastanowić jak z tego wyjść bo ciągle już tego nie chce wspierać jeżeli chodzi o customer pozwala to jest przykład bezpośrednio w dokumentacji czego i co tak naprawdę jest to wyciągamy naszego wyciągamy połączenie do bazy danych w 3d tworzymy kursor i na tym torze wykonujemy tutaj pobieramy wszystkie tam wszystkie wróble w które są wynikiem tego zapytania to jest nic innego jak wyciągnięcie drivera spod spodu w oddaleniu od tego co używałem zatem w mojej perspektywy customowe sql to jest tutaj to jest jednoznaczne z użyciem bezpośrednio sekund i 2 w przypadku progres a w przypadku innych bazy danych proces sprawdźcie co jak udokumentowany jest z was dar to boży jest wszystko co mówi się to nie powinna

mapować to jest poprawny przykład użycia kursor i dioda widzieliśmy go już mnie między innymi wcześniej czyli nie bierzemy procent usa ani procent usa w tej formie słownikowej pojedyncza po strefy i przekazujemy jako drugi parametr do egiptu ta nie parametry tego sql a czy to w formie to plan dla tej pierwszej składnik lub słownika dla tej drugiej na tyle natomiast teraz pytanie na wiele sposobów można to spieprzyć ja nazywam się cześć [Muzyka] także oczywiście można na przykład po kolei można otoczyć oby dwa przykłady pojedynczymi włosami to jest kornik szyn można zastosować interpretację i to nową poprzez procent to jest też wspomnieć że keysean można zastosować operator konkatenacji plus to jesteś skłonny a ten można zastosować stringi i to na to

też będzie i można zastosować procent wcześniej znaczy metodę format na treningu to też jest kurczak w przypadku tej metody i to jest przykład bardzo złego źle zaprojektowane do afryki to jest takie i shotgun w stopę dlaczego ponieważ parametry są opcjonalne i tak po prostu szukać swoich aplikacjach bo możecie pracować nad tym naszym interfejsie ale ktoś może podobne budować w pracy do czegoś innego na innym poziomie które się sprowadza do tego samego więc unikamy takiego i w którym można umieścić w stopę parametry są opcjonalne jakie to ma skutek jeżeli one nie były optymalne jeżeli ktoś by powiedział to co zawsze coś pobrać istnieje i zapytanie sql który potrafi parametry jakiś czy cokolwiek innego to nawet jeśli

cokolwiek jest łatwa jakieś alternatywy i tak dalej wszystko można można zamknąć ja bym się nie obrazi że musiałbym w takim wypadku po przecinku podać swojego kumpla albo pustą tablicę czy pustą pusty słownik to nie boli a byłoby jak split powiedziane że hej ja wykonuję otwór w którym nie ma parametrów wiem że się nie pomyliłem że chciałem chciałem wykonać tego sql a ale zamiast przycinka zrobiłem interpolację betonową więc wołam funkcji jednym argumentem to pytanie muszę sięgnąć do funkcjonowania argumenty byłbym ochrony przed potencjalnie wprowadzeniem tego błędu w tym momencie jestem pozostanie po cichu dieta i doprowadza to do takiej sytuacji gdzie jeden znak gdzie nim poprawne użycie dysku engine ten przykład na górze jest poprawny ponieważ jest to przecinek a ten przykład na dole

to jest dokładnie tak samo jest z tym problem i to jest interpretacja stringów pytanie więc pomija a powaznie parametrów dla mnie to jest przerażające tak naprawdę w tym designie teraz dynamiczne zapytanie gdzie co trochę zapomnieć o tym co mówiłem wcześniej tutaj się reguły wracają na czym to polega kursant wykręci się nie zmienia czyli jeżeli chcemy przekazać parametrów udoskonalono dalej robimy to w ten sposób zmienia się natomiast zbudowanie wszystkiego innego jeśli chcemy dodać dodatkowe tabele zostawić kolumny czy dostałeś jakieś elementy samego języka typu limit 13 i tak dalej dostosowujemy do tego samego p2 sql i nasze zapytanie budujemy w instancji obiektu sql sql on przyjmuje ciąg znaków tutaj możemy podawać nasze parametry w takim formacie jaki kurde gdzie później

oczekiwał natomiast te elementy które chcemy dynamicznie zostawić dokleić stosujemy taką wkładkę jak formatu i to nowego jak metody format i wywołuje metodę forma tylko uwaga bo jest informatyka to nie jest to samo co sql sql format tutaj jest ten problem żeby zawsze mieć pewność że wołamy to na tym stylu a nie wołamy tego przypadkowo na samym streamingu następnie samej nazwy ale tabel spróbujemy identyfikatora mi a wszelkiego rodzaju litery x p l litera b w ten sposób tylko i wyłącznie w ten sposób budujemy dynamicznego sql a jest to trochę skomplikowane ale to jest jedyny taki bezpieczny sposób oczywiście mimo to i tak dobrze jest zrobić z tych parametrów dobrze jest to zawsze stosować ale stosujemy też link o

to powiedz można też zastosować dodawanie którego mówiłem żeby poprzednio unikać ale tutaj jest ta sama reguła nie może to być synka tylko musi to być aktywna metodzie sql to samo tyczy się johna i poprzednich przykładach jeśli byśmy używali z terminatora sql sql server join można się kłócić czy to jest dobre czy złe design bo z jednej strony jeżeli ktoś jest przyzwyczajony do korzystania z formatu w pythonie no to fajnie bo ma ten sam interfejs z drugiej strony może byłoby lepiej gdyby się różniło i nie wiem żebyśmy wizualnie mogli odróżnić jorge ktoś się pomylił i i zastosował format który jest tak naprawdę wektorem ataku dla nas a nie ten który jest bezpieczny w życiu i tutaj przechodzimy do przykładu z

kaloszami umieściłem go tutaj jako przykład fajnego i bo uważam że jest dobrze zaprojektowany oczywiście są miejsca gdzie wraz z kolorem i możemy sobie zrobić ze swoim życiem mimo że deweloperzy się bardzo starają żeby to żeby to się działo przykładowo gdzie to się może zdarzyć wszędzie gdzie musimy jakieś bardziej złożone operację wykonać akceptowanie h-wing czy jakieś analityczne funkcję christine grupowanie jakieś w sortowanie wyników po jakimś polu być może zdefiniowanym dynamiczny i tak dalej to jest dużo więcej i mamy dobry default mamy zapytanie co użytkownikowi tutaj próbujemy zrobić pustą order by skłonić action czyli tam poza tymi paikea po przecinku wykonajmy jeszcze takie select 11 i daj mi wszystkie wyniki czym jest kurs chemii nam pięknie mówi a

ja nie wiem co to jest to i coś tam bo ja nie widzę żadnej kolumny ani referencji która nam odpowiada i tutaj jest fajna rzecz daje nam od razu shotgun o tym co możemy zrobić i stopy oto tekst nie zadziała no to fajnie otoczymy to tekst jako to czym to tekst oczywiście wykonam się dodatkowe sql i mamy y-min natomiast to nie jest dla nich bo ja uważam że to jest świetne z ich strony że it for tego nie pozwalają robić pokażę wam co zrobić plastik natomiast jeżeli szukacie bogów to poszukajcie gdzie ktoś używa sql mi gdzie używa tekst i sprawdź czy przypadkiem nie przetrwał parametr użytkownika bo to jest kornik że gdyby mimo że twórcy biblioteki dobrze to

zaprojektowali i to co ciekawe sprawdzić z jakiej wersji polskiej armii korzysta z poprzednich wersji pierwszą to tekst nie błąd więc być może to jest po prostu takie małe kulki rzeczy niż jakiś starszy niektórych danych aplikacji natomiast dobrze zaprojektowane i teraz chciałbym żeby więcej takich było jeżeli chcielibyście coś z tego zapamiętać wszystkiego ja wiem że jest cool to nie jest przyjemny temat to nie używamy generalnie wszystkich metod betonowych operacji manipulacji rynkami znaków czyli żadnego procent parametry kropka format parametry stringi parametry konkatenacji operatorem plus nie otaczamy proces pojedynczym apostrof m nie ufamy danym od użytkownika innych aplikacji stosujemy i kristine zróbmy przeglądy kodu dynamicznego sql unikamy jeżeli nie ma opcji używamy tylko pg2 sql albo jakiegoś naprawdę dobrze zaprojektowane

golema który nam utrudni potknięcie się i z mojej strony to już wszystko jeżeli macie jakieś pytania to chętnie posłucham

cześć na zdefiniowane parametry to pytanie czy po stronie samej bazy danych jak masz zapytanie preferowany cześć [Muzyka] www.kabaret-antyki.pl cześć powiem tak to zastanowiłbym się trzy problemy z prawem i sprawami zapytaniami jest wtedy kiedy mamy kolejny plik z tego powodu że tworzymy w bazie jakąś instancji czegoś co nazywaliśmy to jest pewna że połączenie mamy connection z coś multipleks 3 różne połączenia na jednym z najmłodszych kulowym to badanie z de facto są dla aplikacji na przykład z osobna użytkownicy więc mógłbyś wtedy powiedzmy dotknąć to zdefiniowane tego zdefiniowanego sql a drugim użytkownikiem bo oni współdzielą to samo połączenie zdefiniować swoje trochę inne to jest taka rzecz która mi przychodzi do głowy i między innymi dlatego mało kto korzysta z dlatego że jeszcze się do

tego nie dostrzegałem kto korzysta z tych parę ważnych pytań ponieważ jak większość z was pewnie wie czy pozbycie się zwykle stosuje się 510 żeby skalować połączenia i przy piłce że bardzo to jest używać przy jakimś sensownym etapie używać tych pól malowanych zapytania z tego powodu że właśnie on musi opiekować się wszystkie żeby zapewnić czystszą że ktoś nie porzucać właśnie takich zapytań ale jak masz gdzieś jakiś własny customowy connection w aplikacji i korzysta z zapytaniem preferowanych takim wektorom które widzimy się sprawdzić właśnie to czy ktoś ci nieporozumienia więc nie definiuje ci tego zapytania na tym samym połączeniu ale to jest już to byłoby już trudniejsze do znalezienia i wyeksportowanie takie typowe składniki gotowe

czytaj opis no pewnie że nie zrobiłeś tego błędu o którym wspomniałem czyli o jejku nie mogę się cofnąć nie mogę się cofnąć w takiej formie się udało to co wcześniej pokazywałem jeżeli nie popełniać tego błędu że otoczysz proces odpowiednią postawę bo w tym pierwszym przykładzie driver przepuści ten parametr przez kemping natomiast tutaj te pojedyncza po stronie po stronie zapytania wprowadzone z dziewczyn wierzeń i przepuścić to przetrwali nie popełniasz błędów a skoro tak to powinno być bezpiecznie zakładając że nie ma błędu w skautingu jak immobilizer zaimplementowany kolegi pierwsze próby ściegu a następnie zmysł nie robiłem nakładam na stronie w bez szkoda że autorzy organów motywują to że drugi argument do egzekucji jest opcjonalny a nie obowiązkowy wiesz o tym basenie

szukałem natomiast kliknąłem ten przykład ze skórą chemii w takim disclaimer na dole że a ja wiem że ten schemat jest bardzo potrzebne bo to co oni zrobili jest potrzebne czasami potrzeba w życiu takiego tekstowego skóra i jesteśmy świadomi on pochodzi od nas i to wydajnością ma sens i logicznie ma sens napisałem hej bawmy się dobrze co jest nam potrzebne ale i tak było to dla mnie śmieszne w trakcie tego spotkania na oni powiedzieli do widzenia no ale no zanim przeczytaj to odpowiedź no wiesz no ale no ale jestem potrzebny wiem i co teraz powiesz że taki kurs online zaprojektowane i podaj numer peppa i to jest gdzieś jakiś stary pytanie expectations a poza tym to było

zdefiniowane przyznam się szczerze że go nie czytałem jeżeli jesteś zainteresowany to odezwij się do mnie po znajdziemy tego to co znajdziemy tego peppa i możemy na niego patrzeć podejrzewam że tam jest jakiś wytłumaczenia może ktoś tego nie badał chętnie na pewno to sprawdzę i być może do zaktualizowanej wersji gdzieś na ostatniej konferencji to centrum argumentacją jeszcze dobre pytanie tylko ja mam pytanie i zacznę od tego że nie jestem specjalistą od kuala ale zapytałbym czy możliwe jest możliwe są jakiekolwiek detektyw controls czy możemy wykorzystać jakieś kanarki to kanarkowy albo cokolwiek żeby nam się coś pojawiło się skończy pojawia i czy dobrze czuję że nie bo każde takie wywołanie to jest de facto wywołanie legalne polecenia jest zbudowany na

bazie mogę o tym powiedzieć tak oraz ma pewne rozwiązania które ja osobiście wierzę że mają takiego aplikacyjnego firewalla który stosuję stosuję machine learning i analizuje ruch między aplikacjami bazą danych jak widzicie skala które mi się nie podoba to mówi bath to nie jest takie podejście dopóki nie przyjdzie do ciebie mam nadzieję że przeciwnicy nie powiedzą twój raport na teraz a to narzędzie ci powiedzieć nie mi chodziło po głowie chodzi mi po głowie takie pomysły jak opcjonalne wyłącznie partnera bo mam taki pomysł nie potrafią jeszcze do implementacji tego w zakresie chciałbym mieć możliwość fizycznie włączenie i wyłączenie podgrzewania składników bazie wtedy jeżeli bym sobie sprawę parował statement i kontrolą w aplikacji kiedy mogę pracować a kiedy nie mogę pracować

to w teorii nawet jakbyś próbował coś zmodyfikować to badaniami z kolei inni tylko tego co widzę nauczyłeś nie robiłem tego z tego teraz nie możesz zrobić można byłoby się pokusić w implementacji gdzieś na warstwie drivera jakbyście kominku albo ona albo trzeba zaimponować takiego jak ten który by się upewnić że tylko podpisane przez siebie na przykład sql mógłby być wykonywane ale nie jest mi wiadomość ktoś coś takiego próbował zrobić wiem że myślimy o tym z kolegą rozmawiali przez ten czas ale nie podchodziliśmy do implementacji tego gdy proponowano mu proponowane zapytania procedury składowane są rzeczy które sie które się najbardziej nasuwają

jeżeli czy jest sens czy jest możliwe nie wiem o gueście nie ma jakiejś pokory inaczej jak dane są zdecentralizowane i on tam odbiera te dane użytkownika i przesyła do takiej kwerendy albo do do czegokolwiek tam czy można w jakiś sposób wykorzystać obejść ten sanitacji tych danych kiedy byłem sam to robi tak można znaleźć miejsca gdzie tego nie robi bo czasami się zdarzają można znaleźć miejsca nie udokumentowane przykładowo jak ten rower ze składem chemicznym zdenerwowany to mówię że oni mają taki słodki w dokumentacji które stawiają w miejscach gdzie się może nawet pojawić i wszyscy są ostrzeżenie dla mnie wolno że tam trzeba uważać jak mi to opisał to w tym samym początku napisał że właśnie teraz kilka miejsc

gdzie zapomniałem dodać nie więc nie wiem czy to ci odpowiem na pytanie bo ty się pytasz o konkretną rzecz jeżeli chodzi o przepływ sterylizacji joe i ja jeśli nie znam takiego przykładu jak to można bezpośrednio wykorzystać podejrzewam że można coś kombinować nie wiem jeżeli są błędy na pewno w całym organizmie ja nie próbowałem eksportować od strony energetycznej szukałem miejsca gdzie większość programistów może się pomylić takich bardzo realistycznych myślę że to jest takie lokalnych ludzi to będzie w każdej aplikacji większej

ktoś coś okej dobra w takim razie dzięki wielkie dzięki chłopaki dla ciebie [Aplauz] cześć mogę wpisać to adam w jednak na pewno nie zauważyłem widzisz ja to bym komputer mi się dobra mamy jeszcze chwilę dawid dawid dawid dawid dawid dawid mam smaka okej