A) je prihlaseni pomoci session bezpecne?
Čemu říkáte "přihlášení pomocí session"? Myslíte přihlášení pomocí webového formuláře a následné uložení informace o přihlášeném uživateli do session? Je to skoro ten nejméně bezpečný způsob přihlášení, ale zároveň je nejpoužívanější, protože podpora bezpečných způsobů přihlášení je v prohlížečích mizerná a uživatelsky nepřátelská.
Záleží jednak na tom, jak bezpečně přenesete údaje zadané ve formuláři, a také na tom, jak bezpečný je identifikátor session. Pokud jej přenášíte v URL, uteče v referreru s každým odkazem na jiný server (i třeba stažení obrázku nebo reklamy odjinud). Pokud je v cookie, přečte jej "jenom" ten, kdo vidí nešifrovaný obsah komunikace, případně - pokud nemá nastaven příznak HTTP only, vidí ji každý skript ve stránce.
B) je bezpecne ukladat promenou treba jako ses_admin? v session?
Celé je to závislé na tom, jak je bezpečný identifikátor session. Samozřejmě je nutné tu proměnnou číst skutečně jen ze session, nepoužívat přiřazení globálních proměnných, kde se ta proměnná může vzít skoro odkudkoli (takže jí útočník může podstrčit).
C) jako ochranu proti odcizeni session jsem udelal funkci pro kontrolu IP adresy, jestli se zmeni je session znicena.
Nejsem si jist, zda to neudělá víc škody než užitku. Celé velké sítě jsou schované za NATem s jednou IP adresou, zároveň se IP adresa uživatele může měnit, aniž by to mohl ovlivnit. Pokud jej budete pořád odhlašovat (a pokud možno ještě tak, že vždy přijde o rozdělanou práci), asi se na váš web brzy vykašle.
D) je mysql_real_escape_string dostatecny proti injekci kodu?
Sám o sobě určitě ne, záleží na tom, jak s ním pracujete a zda jej použijete všude, kde je to potřeba. Což se těžko kontroluje. A také na tom, zda parsuje SQL dotazy přesně stejně, jako použitá knihovna pro MySQL. Pokud nemáte velmi vážný důvod proti, použijte raději binding proměnných.
E) hesla klientu pro prihlaseni ukladam pomoci hashe
Před hashováním hesla k tomu heslu určitě něco přidejte. Buď alespoň konstantu (např. název serveru), nebo lépe sůl - něco náhodného unikátního pro každé heslo (sůl si pak samozřejmě musíte zapamatovat spolu s hashem).
Jinak ale zabezpečení se nedá udělat tak, že zkontrolujete pár věcí, o jejichž nebezpečnosti jste slyšel. Je potřeba se na bezpečnost dívat komplexně a myslet na ní neustále, jinak zkontrolujete jednu věc a vedle necháte díru jak vrata.