Stack overflow je mnohdy poslední záchrana, když po pěti hodinách nedokážete rozchodit jednoduchou věc.
Ono totiž proprietární řešení (např.: MSSQL) nemají vůbec žádnou logiku. To co by jste jinde (MySQL,...) udělali jedním příkazem, tak v M$ rozhodně nefunguje. Ve VBA například jedním příkazem pošlete email, ale přetypovat datový typ range to string je celkem slušná magie.
Takže radši vezmu něco co funguje, než přemýšlet nad bezpečnostním rizikem kódu, který stejně poběží na platformě, která je děravá až až...
To je právě ten problém. Člověk tam najde kus kódu, nastuduje si co to dělá, ověří dokumentaci a pak teprve to použije. A pak za pár dnů přiběhne kluk z QA, že si snad dělám prdel, že ABC přeci nemůžu použít, když aplikace namá nastaveno XY a ani není kompilována s KLF.
Teď se nebavíme o věcech typu "zjistit IP adresu podle MAC", ale o zabezpečené komunikaci. Chápat, co právě daný kus kódu dělá, tam nestačí. Musíte znát celou knihovnu a její nastavení. Koukněte se na ty příklady z článku. U řady z nich není chyba v tom samotném kódu, ale v kontextu, v jakém je použit.
Můj příklad z minulého týdne: zkopíroval jsem kus kódu pro bezpečné ověření přihlašovacích údajů. Fungoval dobře a zcela jsem rozumněl tomu, co dělá. Pak jsem si ale najednou všiml, že přihlášení projde, i když zadám špatně heslo. Po hodiných hledání jsem se zeptal kluků z DBA a odpověď byla: ta služba je nastavena tak, že při přihlašování z localhostu nekontroluje hesla. No tak šel celý kus kódu s loopbackem do stoupy. Mne prostě nenapadlo, že i když se databázový server ptá na heslo, tak že ho u spojení z konzole neověřuje. A DBA se mi smáli, že to přece ví každý.
Tomu rozumím.
Nechtěl jsem se rozepisovat. Nejen, že si zjistím, co to dělá a upravím si to podle toho jak potřebuji i v kontextu aplikace a knihoven. Pokud dělám něco po někom, tak raději zkoumám kontext a ptám se, než abych udělal blbost. Každopádně neříkám, že se nemůže stát chyba. To co jste zmiňoval jako příklad. Ano, „opravdu to ví každý“, ale v době, kdy bych to psal bych si nevzpomněl. Určitě bych si vzpomněl až po tom, co by mi to autorizovalo špatné heslo :-(