Zabezpečení ConnectionStringu   zodpovězená otázka

ASP.NET WebForms, Databáze

Zdravím všechny,

díky Vaší pomoci a ochotě pomoci amatérovi, se mi konečně podařilo dotáhnout můj webový projekt do fáze, kdy jej mohu umístit na server.

V průběhu tvorby a hledání v článcích jsem se dozvěděl o nutnosti zabezpečit (zakódovat) můj ConnectionString, aby jej nebylo možné přečíst, ale bohužel se mi nedaří najít článek, kde to bylo popisováno.

Můžete mi prosím někdo poradit jak tedy zabezpečit ten ConnectionString, abych mohl bez obav vyzkoušet svůj projekt na serveru.

Jak jsem již zmiňoval nejsem žádnej profík, tak prosím trochu podrobněji.

Mockrát děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To bohužel není úplně jednoduché. Řešení je několik a přiznám se, že žádné mi úplně nevyhovuje.

Návod na použití encryptovací sekce .NETu tady:

http://chiragrdarji.wordpress.com/2008/0...

Takto encryptovaný connection string je ale nepřenosný na jiný PC.

Takže pokud to nevyhovuje, nezbývá než si napsat vlastní tzv. Configuration Section Encryption Provider.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za odpověď,

ale svého providera si určitě sám napsat nedokážu.

Znamená to tedy, že pokud connectionstring nezakóduji, nebude vůbec žádný problém pro kohokoliv si ho zobrazit a následně se mi nabourat do databáze ?

A neexisuje takový provider ke stažení?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, bude veřejný a tudíž i zkopírovatelný. Jiné providery šifrování jsem nenalezl. To ale naznamená, že neexistují.

Řešení, které není optimální, ale bude použitelné v rámci vašich znalostí, je doplnit connection string až při používání o heslo, které budete uchovávat přímo v programu. Bezpečné to není, ale pořád lepší než mít heslo přímo v přiloženém souboru.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Píšete zde o té variantě z doplněním hesla až při používání.

Bohužel přesně nevím jak to myslíte, ale předpokládám, že se nejedná o nic tak složitého(viz mé znalosti), proto bych rád požádal o bližší informace jak postupovat. Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Smím se zeptat, proč byste ho chtěl šifrovat? Do konfigurace se dostane jen ten, kdo má přímý přístup na server, například na FTP. Webserver web.config ven prostě neposkytuje.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V průběhu seznamování s ASP.NET jsem v převážné většině čerpal z Vašich článků a videotutoriálů, bez kterých bych se vůbec nehnul z místa a za něž Vám patří můj dík a obdiv. Nicméně v některém z nich jste se zmiňoval o bezpečností hrozbě s nezakódovaným connectionstringem. Je možné, že jsem Vás špatně pochopil (možná se jednalo o situaci, kdy není připojovací řetězec uložen ve "web.config").

Jestli to tedy chápu dobře, pokud mám connectionstring uložený ve "web.config", nemusím se bát že své přihlašovací údaje k MSSQL vystavím jako ve výkladní skříni ???

Pokud ano tak není co řešit ...

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nepamatuji si, že bych se někdy o možnosti šifrovat connectionstringy zmiňoval, nicméně to v drtivé většině případů nemá valného smyslu.

Jediný scénář, kdy se to používá, je případ, že ostatní uživatelé mají přístup do složky webové aplikace (protože jejich aplikace běží na tom samém serveru a hostuje to amatér, který je neumí správně odizolovat), anebo prostě někdo má přístup do složky webu třeba přes FTP, ale nechcete, aby si mohl přečíst heslo do databáze.

Za standardních okolností, pokud se ve výchozím nastavení nikdo nehrabe, vám webový server nedá web.config, ani MaterPage.master, ani Web.sitemap, ani třeba obsah složky App_Data, App_Code a dalších. Klidně si to zkuste - http://www.vbnet.cz/web.config . Tady to vyplivne customizovanou chybovou stránku, protože interně ASP.NET hodí tuším chybu 401 nebo jí podobnou.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč by byl nepřenosný? Vždyť na tom jiném počítači stačí nainstalovat ten klíč do příslušného úložiště a je to.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback