<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://christianpedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LinneaFarrington</id>
	<title>Christianpedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://christianpedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LinneaFarrington"/>
	<link rel="alternate" type="text/html" href="http://christianpedia.com/index.php?title=Special:Contributions/LinneaFarrington"/>
	<updated>2026-08-30T22:51:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>http://christianpedia.com/index.php?title=Jak_se_br%C3%A1nit_SQL_injection_ve_webov%C3%BDch_aplikac%C3%ADch&amp;diff=77167</id>
		<title>Jak se bránit SQL injection ve webových aplikacích</title>
		<link rel="alternate" type="text/html" href="http://christianpedia.com/index.php?title=Jak_se_br%C3%A1nit_SQL_injection_ve_webov%C3%BDch_aplikac%C3%ADch&amp;diff=77167"/>
		<updated>2026-08-21T17:31:48Z</updated>

		<summary type="html">&lt;p&gt;LinneaFarrington: Created page with &amp;quot;Praktické kroky: od záměru k licenci Začněte tím, že si sepíšete, jaké použití chcete povolit a jaké zakázat. Například pokud vyvíjíte serverovou aplikaci, zvažte AGPL, která pokrývá i síťové nasazení. U knihoven, které mají sloužit jako stavební bloky v jiných projektech, je vhodnější LGPL – ta umožňuje dynamické linkování bez povinnosti šířit celý projekt. Pro malé nástroje a skripty postačí permisivní licence, která e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Praktické kroky: od záměru k licenci Začněte tím, že si sepíšete, jaké použití chcete povolit a jaké zakázat. Například pokud vyvíjíte serverovou aplikaci, zvažte AGPL, která pokrývá i síťové nasazení. U knihoven, které mají sloužit jako stavební bloky v jiných projektech, je vhodnější LGPL – ta umožňuje dynamické linkování bez povinnosti šířit celý projekt. Pro malé nástroje a skripty postačí permisivní licence, která eliminuje právní tahanice. Vždy si přečtěte plné znění licence, ne jen shrnutí. Pozor na to, že některé licence nejsou kompatibilní – sloučení kódu pod GPL a Apache může být problematické.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Dalším krokem je správné označení projektu. Do kořenového adresáře uložte soubor s textem licence (např. LICENSE, COPYING) a do každého zdrojového souboru přidejte hlavičku s copyrightem a odkazem na licenci. To není jen formalita: bez toho nemáte důkaz, že jste autorem, a uživatelé nemusí vědět, za jakých podmínek kód používají. Pokud používáte cizí kód, ověřte, že jeho licence je kompatibilní s vaší. Typická chyba je převzít kód z internetu bez kontroly a pak zjistit, že ho nemůžete šířit pod svou licencí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Praktickým tipem je také použití whitelistů pro vstupy, které mají omezený rozsah hodnot, jako jsou čísla stavů, identifikátory nebo výčtové typy. Pro textové vstupy, kde potřebujete zachovat formátování, použijte vrstvu pro escapování výstupu, nikoliv pro vstup. Pamatujte, že SQL injection se nevyhýbá ani JSON API, GraphQL dotazům nebo noSQL databázím, i když tam jsou principy trochu odlišné. Vždy proto testujte své aplikace nástroji pro dynamickou analýzu zranitelností a pravidelně provádějte penetrační testy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si rozmyslete, jak chcete projekt rozvíjet. Pokud očekáváte příspěvky od komunity, zvolte licenci, kterou znají a které důvěřují (např. MIT nebo GPL). Pokud chcete mít možnost později změnit licenci, vyžaduje to souhlas všech přispěvatelů – proto je dobré si od začátku vyžádat podepsání contributor agreement. Nebo se tomu vyhnete tím, že si vyberete licenci, u níž víte, že ji nebudete chtít měnit. Dobře zvážené rozhodnutí na začátku vám ušetří spoustu nepříjemností ve chvíli, kdy projekt začne být používán ve větším měřítku.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Refaktorování kódu patří mezi činnosti, které mnozí vývojáři odkládají, protože se obávají zdlouhavých ručních úprav. Moderní vývojová prostředí však nabízejí sadu nástrojů, které dokážou běžné operace urychlit natolik, že se z refaktorování stane rutinní záležitost. Nemusíte instalovat žádné doplňky – stačí využít to, co už ve svém IDE máte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je vždy použití parametrizovaných dotazů, ať už pracujete s jakýmkoliv jazykem či frameworkem. Místo skládání řetězce, kde uživatelský vstup přímo vkládáte do SQL příkazu, předáte dotaz jako šablonu s placeholdery a hodnoty dodáte zvlášť. Databázový ovladač se pak postará o jejich bezpečné zakódování. Tento přístup funguje v PHP s PDO, v Pythonu s psycopg2, v Javě s PreparedStatement a podobně. Pokud používáte ORM, mějte na paměti, že i tam lze napsat nebezpečný „raw&amp;quot; dotaz – vždy preferujte vestavěné metody.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při výběru berte v potaz velikost týmu a čas na vývoj. GraphQL se nevyplácí u malých projektů s úzkou doménou, kde by bylo schéma zbytečně složité. REST je tu rychlejší a přehlednější. Naopak pokud víte, že budete API rozšiřovat a klienti si budou žádat stále nové kombinace dat, GraphQL vám ušetří nekonečné přidávání endpointů. Typický kompromis: použijte REST pro veřejné API a GraphQL pro interní služby. Tím získáte to nejlepší z obou světů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Zavedením těchto opatření – parametrizované dotazy, minimální práva, skryté chyby, whitelisty a pravidelné testování – snížíte riziko SQL injection na minimum. Neexistuje univerzální stříbrný náboj, ale kombinace technik vás ochrání před drtivou většinou útoků. Důležité je začít hned u nových projektů a postupně opravit i ty staré, kde se chyby často vyskytují.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Než začnete šířit svůj kód, zastavte se u výběru licence. Není to formalita, ale právní rámec, který určí, co s vaším dílem smí ostatní dělat. Špatná volba může odradit potenciální přispěvatele, nebo naopak umožnit komerční zneužití, které jste nezamýšleli. Základní otázka zní: Chcete, aby vaše knihovna zůstala vždy otevřená, nebo vám nevadí, že ji někdo začlení do uzavřeného produktu?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr si shrňte, že správné verzování není o počtu verzí, ale o jasných pravidlech a automatech. Nastavte si jednoduchý workflow, který každý člen týmu pochopí: změna v knihovně vede k zvýšení verze, aktualizaci manifestu a záznamu do changelogu. Vše kontrolujte v CI. Tím se vyhnete nejistotě, která verze je aktuální, a projekt zůstane stabilní i při mnoha knihovnách. Vyhněte se improvisaci a spoléhání na paměť – jediným zdrojem pravdy je verzovací soubor, který musí být vždy aktuální.&lt;/div&gt;</summary>
		<author><name>LinneaFarrington</name></author>
	</entry>
	<entry>
		<id>http://christianpedia.com/index.php?title=User:LinneaFarrington&amp;diff=77166</id>
		<title>User:LinneaFarrington</title>
		<link rel="alternate" type="text/html" href="http://christianpedia.com/index.php?title=User:LinneaFarrington&amp;diff=77166"/>
		<updated>2026-08-21T17:31:41Z</updated>

		<summary type="html">&lt;p&gt;LinneaFarrington: Created page with &amp;quot;Váš průvodce světem interiérů se zabývá denně. Píšu o tom, jak skloubit funkčnost s teplem domova. Nejvíc mě baví ukazovat chytrá řešení, která zvládne každý.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Váš průvodce světem interiérů se zabývá denně. Píšu o tom, jak skloubit funkčnost s teplem domova. Nejvíc mě baví ukazovat chytrá řešení, která zvládne každý.&lt;/div&gt;</summary>
		<author><name>LinneaFarrington</name></author>
	</entry>
</feed>