Čaute,
Je nějaká možnost, jak zabezpečit C# aplikace před použitím .NET Reflectoru ?
Není to kvůli zabezpečení proti crackům. Je to kvůli toho, aby někdo přes .NET Reflector nezjistil přihlašovací údaje k mojí databázi. Ta obsahuje prakticky všechen obsah mojí aplikace (uživatelské účty, seznam skupin + jejich hesla, atd..).
Předem děkuji za nějaké rady.
Zabezpečení C# aplikace proti .NET Reflector
- satik
- Level 6
- Příspěvky: 3509
- Registrován: leden 15
- Bydliště: Krkonoše
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Zabezpečení C# aplikace proti .NET Reflector
Není a nebyla by ani kdyby to bylo v jiném jazyce.
Tohle se řeší tak, že máš na serveru nějakou mezivrstvu, které posíláš požadavky (nejlíp s nějakou autentizací) a ta mezivrstva ti vrací výsledky.
Tohle se řeší tak, že máš na serveru nějakou mezivrstvu, které posíláš požadavky (nejlíp s nějakou autentizací) a ta mezivrstva ti vrací výsledky.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Zabezpečení C# aplikace proti .NET Reflector
Hm. Myslíš, že by k tomu stačilo si v MySQL přidat procedury na všechno co potřebuji (registrace, přihlášení, atd...). A vytvořit účet pro přístup do DB, který by měl práva pouze volat tyto procedury (neměl by práva na INSERT, DELETE, UPDATE, atd..). Čímž i kdyby měl to login tak by nic nemohl pokazit ?
- satik
- Level 6
- Příspěvky: 3509
- Registrován: leden 15
- Bydliště: Krkonoše
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Zabezpečení C# aplikace proti .NET Reflector
Moc bych to neriskoval, databázi bys takhle vůbec neměl někde vystavovat přímo, nikdy nevíš, kdo se ti do toho dostane a vytáhne si třeba přihlašovací údaje i pro zápis, pokud to třeba špatně nastavíš. Nebo si přečte údaje týkající se ostatních uživatelů apod. (nevím, k jakým přesně účelům to plánuješ využít).
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Zabezpečení C# aplikace proti .NET Reflector
Dobře. Jak bys to teda řešil ty ? Mohl bys mi poslat nějakou stránku, kde by bylo popsáno, jak to udělat ? Nejlépe, aby to pochopil i nezasvěcený.
- satik
- Level 6
- Příspěvky: 3509
- Registrován: leden 15
- Bydliště: Krkonoše
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Zabezpečení C# aplikace proti .NET Reflector
O žádné teď nevím, prostě ti na serveru poběží nějaká služba (klidně to může být i obyčejná PHP stránka nebo .NET služba), které se ta tvoje aplikace zeptá na data (místo toho, aby se ptala přímo té databáze).
Ta služba si řekne databázi o data a pak je pošle tvé aplikaci.
Samozřejmě nebudeš z aplikace třeba posílat ten SQL dotaz, ale jen třeba se zeptáš na seznam všech uživatelů a ta služba už bude vědět, jaký sql příkaz má zavolat...
Nevím, jestli tam budeš nějak rozlišovat data jednotlivých uživatelů - pak bys potřeboval nějakou autorizaci - třeba přihlášení nebo nějaký hash podle sériového čísla windows apod.
Ta služba si řekne databázi o data a pak je pošle tvé aplikaci.
Samozřejmě nebudeš z aplikace třeba posílat ten SQL dotaz, ale jen třeba se zeptáš na seznam všech uživatelů a ta služba už bude vědět, jaký sql příkaz má zavolat...
Nevím, jestli tam budeš nějak rozlišovat data jednotlivých uživatelů - pak bys potřeboval nějakou autorizaci - třeba přihlášení nebo nějaký hash podle sériového čísla windows apod.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index
Re: Zabezpečení C# aplikace proti .NET Reflector
Jo to se mi zdá chytré. Takže prakticky bych v C# poslal dotaz do PHP (ve stylu "pošli mi seznam uživatelů"), PHP by se za mě zeptalo DB a poslalo do C# pouze odpověď ?
Akorát teda nevím jak komunikovat s PHP . Ale na to snad nějak příjdu.
Akorát teda nevím jak komunikovat s PHP . Ale na to snad nějak příjdu.
Re: Zabezpečení C# aplikace proti .NET Reflector
1) NIKDY nepiš do aplikace žádné přihlašovací údaje.
2) Udělej si an webu api, které pošleš požadavek (/api.php?request=getDataFromTableX&token=blabla). Autentifikuj přes nějaký způsob unikátního tokenu (který nezůstává stále stejný, nýbrž se mění, klidně třeba hash času + něcp k tomu).
3) Obfuskuj, programů je na to hodně. Ačkoliv všechno je deobfuskovatelné, u mnoha způsobů obfuskace (virtualmachine a jiné monstrozity...) to stojí neskutečné množství času a úsilí, takže alespoň většinu šťouralů odradíš :)
Jak udělat požadavek na web? new WebClient().DownloadString("http://stranka.com/api.php?something") a dostaneš data co to vrátí jako plaintext.
2) Udělej si an webu api, které pošleš požadavek (/api.php?request=getDataFromTableX&token=blabla). Autentifikuj přes nějaký způsob unikátního tokenu (který nezůstává stále stejný, nýbrž se mění, klidně třeba hash času + něcp k tomu).
3) Obfuskuj, programů je na to hodně. Ačkoliv všechno je deobfuskovatelné, u mnoha způsobů obfuskace (virtualmachine a jiné monstrozity...) to stojí neskutečné množství času a úsilí, takže alespoň většinu šťouralů odradíš :)
Jak udělat požadavek na web? new WebClient().DownloadString("http://stranka.com/api.php?something") a dostaneš data co to vrátí jako plaintext.
Re: Zabezpečení C# aplikace proti .NET Reflector
Dobře dík. A mohl bys mi ještě prosím poslat nějakou ukázku toho api ?
Re: Zabezpečení C# aplikace proti .NET Reflector
Hledej, najdeš toho spoustu. Např. tohle vlákno na StackOverflow.
Re: Zabezpečení C# aplikace proti .NET Reflector
Díky. Už jsem začal tvořit api a přepisovat aplikaci, tak aby s ním pracovala. Jenže jsem teď narazil. Jak mám v C# zvládnout akci "die("nějaký erorr;")" ?
Když dám požadavek na php do Try, tak se stejně bezproblémově vykoná. Ale já potřebuji, aby když se v php zavolá "die();" ukázala ta moje aplikace chybu.
Když dám požadavek na php do Try, tak se stejně bezproblémově vykoná. Ale já potřebuji, aby když se v php zavolá "die();" ukázala ta moje aplikace chybu.
- CZechBoY
- Master Level 9.5
- Příspěvky: 8813
- Registrován: srpen 08
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Zabezpečení C# aplikace proti .NET Reflector
Musíš v tom C# klientovi parsovat odpověď serveru a když se tam nalezne řetězec třeba "error:" tak vyhodit chybu.
Případně použít nějakej formát, do kterýho si dáš víc informací než jen odpovědní text - např. json (status code, response text, ...).
Případně použít nějakej formát, do kterýho si dáš víc informací než jen odpovědní text - např. json (status code, response text, ...).
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 4
- 1026
-
od Martab
Zobrazit poslední příspěvek
04 srp 2023 12:48
-
-
Nastavení zabezpečení internetu zabránilo v otevření jednoho nebo více souborů Příloha(y)
od magnator » 06 čer 2023 10:23 » v Windows 11, 10, 8... - 3
- 1782
-
od mmmartin
Zobrazit poslední příspěvek
06 čer 2023 21:22
-
-
- 5
- 3020
-
od pcmaker
Zobrazit poslední příspěvek
21 dub 2023 18:15
-
- 1
- 725
-
od petr22
Zobrazit poslední příspěvek
28 led 2024 12:36
-
-
Explorer.exe - chyba aplikace 0x0000000000000024
od Dav98786 » 31 led 2024 20:26 » v Windows 11, 10, 8... - 2
- 636
-
od Dav98786
Zobrazit poslední příspěvek
01 úno 2024 09:17
-
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti