Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
Co se stane, když si postavíte pyramidu pro projekt
Strona
Dyskusja
polski
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
<br>Pozor na případy, kdy parametrizovat nelze. Názvy tabulek, sloupců, klauzule ORDER BY nebo ASC/DESC se často skládají z uživatelského vstupu, ale placeholdery pro ně nefungují. Zde je nutné použít whitelist povolených hodnot. Pokud uživatel vybírá řazení, nabídněte mu konkrétní seznam a mapujte vstup na pevné řetězce. Nikdy neověřujte pouze to, že vstup neobsahuje apostrof nebo středník, protože filtry založené na černých listinách se dají obejít kódováním, komentáři nebo jinou syntaxí.<br><br>Shrnutí: odhad nebude přesný, dokud neoddělíte implementaci, revizi a úpravy. Počítejte s tím, že revize není zdarma a že úpravy nejsou jen formalita. Sledujte skutečná data a upravujte odhady podle nich. Bez toho zůstane plánování jen hádání.<br><br>Nejčastější chyba je spojování řetězců: "SELECT * FROM uzivatele WHERE jmeno = '" + vstup + "'". Stačí zadat hodnotu, která obsahuje apostrof a další SQL příkaz, a podmínka se rozpadne. Podobně nebezpečné je vkládání čísel bez ověření, protože útočník nemusí použít uvozovky a stačí mu mezera nebo komentář. Ochrana nespočívá v tom, že zakážete apostrof, ale v tom, že vstup nikdy nebude součástí textu dotazu.<br><br>SQL injection nevzniká v databázi, ale v místě, kde se řetězec dotazu skládá z uživatelského vstupu. Pokud se hodnota z formuláře, URL parametru nebo hlavičky dostane do textu SQL přes konkatenaci, útočník může změnit význam celého dotazu. Databáze pak vykoná to, co jí předložíte, a ne to, co jste zamýšleli. Rozhodující tedy není použitý databázový engine, ale způsob, jakým se dotaz sestavuje v aplikaci.<br><br>Aktualizace je jediná část, kterou lidé podceňují nejvíc. Pyramida nemá být výstavní artefakt, ale pracovní nástroj. Stačí jednou týdně projít jednotlivá patra a zeptat se: co je hotové, co se posunulo a co už neplatí. Pokud se změní výstup, změňte i jeho definici. Pokud se změní odpovědnost, přepište vlastníka. Nenechávejte v pyramidě mrtvé položky jen proto, že je škoda je smazat. Právě ty vytvářejí dojem, že nástroj nefunguje.<br><br>Zavedení prepared statements je nutné doplnit minimálními právy databázového uživatele. Aplikace nemá mít právo mazat tabulky, měnit schéma ani číst tabulky, které nepotřebuje. Když i přes veškerou snahu dojde k chybě, omezená práva zmenší dopad. Zároveň je vhodné chybové stavy logovat a nikdy nezobrazovat koncový uživatel SQL dotaz ani chybovou zprávu databáze. Útočník tak nezíská zpětnou vazbu, podle které by ladil další pokusy.<br><br>Parametrizace a prepared statements v praxi Řešením jsou parametrizované dotazy, kde se hodnoty př[https://www.hometalk.com/search/posts?filter=ed%C3%A1vaj%C3%AD edávají] odděleně od SQL příkazu. Většina knihoven pro práci s databází to podporuje přes placeholdery, například otazník nebo pojmenovaný parametr. Správný postup je napsat dotaz s placeholdery a hodnoty předat jako argumenty. Databázový ovladač je pošle zvlášť a engine je nikdy nevyhodnotí jako SQL kód. Tím zmizí i problém s apostrofy, uvozovkami a komentáři.<br><br>Poslední návyk je měřit místo hádat. Pusť pět lidí na prototyp a nech je mluvit nahlas, zatímco mlčíš. Sleduj, kde se zaseknou, a neobhajuj design. Ptej se „co jsi čekal, že se stane", ne „líbí se ti to". Potom oprav jednu věc a zopakuj. Design není dekorace na konci, ale řada rozhodnutí během psaní kódu.<br><br>Destructuring je jednou z funkcí, které se v ukázkách tváří neškodně, ale v reálném kódu dokážou nadělat dost škody. Základní zápis je jednoduchý: z objektu nebo pole vytáhnete hodnoty do proměnných. Jenže právě tady začíná past. Když destrukturujete vlastnost, Here's more info in regards to [http://Crativ.CO.Kr/bbs/board.php?bo_table=info1&wr_id=140413 více čtěte zde] stop by the web site. která v objektu neexistuje, dostanete undefined. Pokud s ní dál počítáte jako s číslem nebo řetězcem, aplikace spadne až o několik řádků dál a ladění zabere zbytečně dlouho. Vždy počítejte s výchozí hodnotou: const port = 3000 = config. Výchozí hodnota se použije pouze tehdy, když je vlastnost undefined, ne když je null.<br><br>Jak pyramidu poskládat, aby vydržela Začněte zdola. Sepište všechny výstupy, které musí být hotové, aby projekt mohl skončit. Potom je seskupte do menších celků podle toho, co spolu souvisí. Tím vzniknou jednotlivá patra. Nemá smysl tlačit do jednoho patra věci, které se dají udělat nezávisle na sobě. Naopak věci, [http://Crativ.CO.Kr/bbs/board.php?bo_table=info1&wr_id=140413 rady pro rekonstrukci] které na sebe čekají, patří do stejné linie. U každého patra si napište jednu větu: „Tohle patro je hotové, když…". Pokud větu nedokážete dokončit bez slov „asi" nebo „snad", nemáte hotovou definici a pyramida bude klouzat.<br><br>Kontrola by měla být součástí vývoje, ne jednorázová akce. Projděte všechny dotazy v kódu a ověřte, zda používají parametry. Napište test, který pošle do formuláře apostrof, uvozovku a komentář a ověří, že aplikace vrátí očekávaný [http://Crativ.CO.Kr/bbs/board.php?bo_table=info1&wr_id=140413 úložné prostory v malém bytě]ýsledek místo chyby. Teprve když jsou všechny vstupy oddělené od SQL, je ochrana proti SQL injection skutečně hotová.<br>
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony