<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-babylonsignalis.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WilbertMaitland</id>
	<title>Babylon SIGNALIS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-babylonsignalis.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WilbertMaitland"/>
	<link rel="alternate" type="text/html" href="https://wiki-babylonsignalis.org/index.php/Special:Contributions/WilbertMaitland"/>
	<updated>2026-09-18T06:39:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki-babylonsignalis.org/index.php?title=SQL_injection:_pro%C4%8D_ho_v%C3%BDvoj%C3%A1%C5%99i_st%C3%A1le_podce%C5%88uj%C3%AD_a_jak_se_mu_br%C3%A1nit&amp;diff=186334</id>
		<title>SQL injection: proč ho vývojáři stále podceňují a jak se mu bránit</title>
		<link rel="alternate" type="text/html" href="https://wiki-babylonsignalis.org/index.php?title=SQL_injection:_pro%C4%8D_ho_v%C3%BDvoj%C3%A1%C5%99i_st%C3%A1le_podce%C5%88uj%C3%AD_a_jak_se_mu_br%C3%A1nit&amp;diff=186334"/>
		<updated>2026-08-29T05:17:46Z</updated>

		<summary type="html">&lt;p&gt;WilbertMaitland: Created page with &amp;quot;Dalším častým omylem je domněnka, že stačí licenci vybrat a zapomenout na ni. Nezapomeňte na konzistenci – pokud změníte licenci po vydání verze 1.0, všichni, kdo ji stáhli, mají právo používat kód podle původních podmínek. To znamená, že zpětná změna na přísnější licenci je prakticky nemožná, pokud nemáte podpisy všech přispěvatelů. U projektů s více autory je proto vhodné od začátku používat mechanismus, který vám umo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dalším častým omylem je domněnka, že stačí licenci vybrat a zapomenout na ni. Nezapomeňte na konzistenci – pokud změníte licenci po vydání verze 1.0, všichni, kdo ji stáhli, mají právo používat kód podle původních podmínek. To znamená, že zpětná změna na přísnější licenci je prakticky nemožná, pokud nemáte podpisy všech přispěvatelů. U projektů s více autory je proto vhodné od začátku používat mechanismus, který vám umožní získat souhlas s případnou změnou licence. Dobrým zvykem je také doplnit do hlaviček zdrojových souborů krátkou poznámku o licenci a autorovi.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Automatizace jen tam, kde dává smysl Automatizované testy jsou skvělé pro opakované kontroly, ale nevyplatí se je psát na všechno. Základní pravidlo: automatizujte to, co je stabilní a co se často mění jen v detailech. Například testování přihlašovacího formuláře, validace polí nebo načítání seznamů. Naopak nespouštějte automatizaci na složité gesta, animace nebo testy závislé na aktuální poloze zařízení. Tyto scénáře jsou náchylné k falešným výsledkům a jejich údržba stojí víc času, než ušetří. Při psaní automatizovaných testů se vyhněte závislosti na konkrétních texturách nebo barvách – stačí drobná změna designu a test spadne, i když funkcionalita funguje.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typickým chybou je měřit pokrytí na projektu, který má hodně uživatelského rozhraní a málo jednotkových testů. Testy UI jsou pomalé a křehké, a pokud se je snažíte pokrýt měřením, zjistíte, že čísla jsou nízká, ale práce s nimi je neúměrně náročná. V takovém případě je lepší se zaměřit na kritické algoritmy a logiku, a UI testy nechat být, nebo je alespoň nesledovat v rámci stejné metriky. Stejně tak nemá smysl měřit pokrytí u prototypů a jednorázových skriptů, které se zahodí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Vaše první aplikace by měla umět něco jednoduchého – třeba pozdravit uživatele a přečíst jeho jméno. Než začnete psát, ujasněte si, co od programu chcete. Například: „Zobrazím text, pak počkám na vstup od uživatele a nakonec vypíšu odpověď.&amp;quot; Tento postup je čitelný a snadno se testuje. Při psaní kódu si dejte pozor na to, aby se každý příkaz ukončil středníkem. Čeština dělá v C# problém jen tehdy, když zapomenete na diakritiku – ale to je spíš vizuální záležitost. Skutečný problém nastává, když použijete místo středníku tečku nebo rovnou zapomenete uzavřít závorku. To jsou nejčastější chyby, které kompilátor hlásí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kritická situace nastává u dynamických dotazů, kde se mění sloupce, řazení nebo LIMIT. Tam parametrizace nepomůže, protože potřebujete vložit identifikátor, ne hodnotu. Typická chyba je zapsat výsledek z URL přímo do ORDER BY. Řešení je striktní whitelist: seznam povolených názvů sloupců a směrů řazení. Pokud hodnota neodpovídá žádné položce, použijte výchozí nastavení. Stejně postupujte u názvů tabulek nebo jiných identifikátorů. Dalším častým přešlapem je zapomenutí na jiné typy vstupů, než jsou formuláře. SQL injection může přijít přes JSON payload, XML, hlavičky nebo dokonce přes názvy souborů při uploadu. Proto nikdy nepředpokládejte, že data z rozhraní jsou bezpečná jen proto, že nepocházejí z klasického formuláře.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Proč je běžné testování na demo stránkách k ničemu Mnoho firem testuje aplikace na jednoduchých demo scénářích, kde se otestuje jen pár formulářů. Útočník se ale může zaměřit na méně nápadná místa, jako jsou vyhledávací filtry, třídění v tabulkách, nebo třeba textové pole pro poznámky. Často se zapomíná na sekundární funkce, jako je export dat, hromadné operace nebo synchronizace s externími službami. Proto je nutné provádět penetrační testy na plné verzi aplikace s reálnými daty. Automatické skenery najdou jen podstatnou část zranitelností, ale pokročilé techniky vyžadují ruční analýzu. Dobré je také sledovat logy databáze a hledat pokusy o neočekávané příkazy – neobvyklé chyby syntaxe nebo velký objem dotazů z jedné IP.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si vytvoříte nový projekt konzolové aplikace. Ve Visual Studiu zvolte šablonu „Konzolová aplikace&amp;quot; a dejte projektu smysluplný název. Důležité je nespoléhat na to, že vám IDE všechno vygeneruje. Podívejte se, jaké soubory vznikly. Hlavní je Program.cs – tam píšete kód. Další soubory, jako třeba .csproj, si zatím nevšímejte, ale berte je jako součást projektu, kterou nebudete mazat. Typická začátečnická chyba je smazat něco, co „vypadá zbytečně&amp;quot;, a pak se divit, že projekt nefunguje.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když kód spustíte, objeví se okno a zmizí tak rychle, že nevidíte výsledek. Toto je klasický problém začátečníků. Řešení je jednoduché: na konec programu přidejte řádek Console.ReadKey();, který počká na stisknutí klávesy. Tento řádek je nezbytný, když aplikaci spouštíte přímo z IDE. Bez něj se okno zavře okamžitě po skončení programu. Mnoho lidí to neví a myslí si, že udělali něco špatně. Další častá chyba je, že lidé píší ReadLine místo ReadKey – to pak program čeká na vstup, ale vypadá to, jako by se nic nedělo. Rozdíl je v tom, že ReadLine čeká na Enter a celý řádek, zatímco ReadKey stačí jediná klávesa.&lt;/div&gt;</summary>
		<author><name>WilbertMaitland</name></author>
	</entry>
	<entry>
		<id>https://wiki-babylonsignalis.org/index.php?title=User:WilbertMaitland&amp;diff=186323</id>
		<title>User:WilbertMaitland</title>
		<link rel="alternate" type="text/html" href="https://wiki-babylonsignalis.org/index.php?title=User:WilbertMaitland&amp;diff=186323"/>
		<updated>2026-08-29T05:14:24Z</updated>

		<summary type="html">&lt;p&gt;WilbertMaitland: Created page with &amp;quot;Autor blogu světem interiérů se zabývá denně. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejraději popisovat postupy krok za krokem.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu světem interiérů se zabývá denně. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejraději popisovat postupy krok za krokem.&lt;/div&gt;</summary>
		<author><name>WilbertMaitland</name></author>
	</entry>
</feed>