• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    MAIMONIDES
    MAIMONIDES --- ---
    PJOTRIK: Pardón, proč si někdo myslí, že Altair ví čem mluví?
    PJOTRIK
    PJOTRIK --- ---
    TOOMIX: Zakladni doporuceni (i z ty Altairovy prednasky) je: nech co nejvic z kryptografie na lidech ktery tomu rozumi, nepouzivej systemovy krypto naprimo (je budto spatne nebo neprakticky) a pouzij http://securitydriven.net/inferno/
    zhruba takhle pro hashovani se pouzije SHA384, pro odvozeni PBKDF2 misto Rfc2898DeriveBytes (s tim ze bych tu peknou bulharskou konstantu 384 nahradil hmac.HashSize)
    TOOMIX
    TOOMIX --- ---
    MORMEGIL: username se hashuje asi kvůli zmatení potenciálního útočníka, je to tak historicky, co ten framework vzniknul (cca rok 2007). Protože ale dělám migraci na .NET 4.6.2 a Visual Studio 2017, můžu si dovolit udělat určitý změny, který nebudou zpětně kompativilní a došel jsem až k řešení ukládání hesel
    MORMEGIL: jo ajo
    MORIARTY: Valášek o tom měl přednášku i na nedávním MSFestu, ale byl jsem nakonec na jiný
    O nějaký extra citlivý data nejde, a hesla jsou většinou typu "lopata", "kobliha", "1A23d65", protože obsluhy ovládající výrobní technolologie nemají zrovna velké znalosti ohledně počítačů a IT

    Každopádně díky, použiju Rfc2898DeriveBytes
    BIDAK
    BIDAK --- ---
    MORMEGIL: Já čet: Chybí vám tam stůl. Úplně zmatenej. :)
    MORIARTY
    MORIARTY --- ---
    TOOMIX: Teď jsem zrovna u Valáška na školení a ten doporučuje PBKDF2 s aspoň 10 tisícemi iteracemi. Takže jak píše MORMEGIL: https://msdn.microsoft.com/...library/system.security.cryptography.rfc2898derivebytes(v=vs.110).aspx
    MD5 je už hodně mimo, ale taky ho v některých starých projektech používáme :/
    MORMEGIL
    MORMEGIL --- ---
    (P. S. TOOMIX: 4. Rovnítko je =. Znak | je svislítko.)
    MORMEGIL
    MORMEGIL --- ---
    TOOMIX: 1. Chybí vám tam sůl. 2. Žádná z rychlých haší (tzn. neiterované MD5, SHA256) není vhodná pro ukládání hesel. 3. Chápu dobře, že hašujete username? Proč?

    V ideálním případě použij něco přímo navržené a rovnou připravené pro ukládání hesel, např. bcrypt. Pokud se chceš spokojit s tím, co je přímo v .NETu, nejjednodušší je asi použít Rfc2898DeriveBytes.
    TOOMIX
    TOOMIX --- ---
    Měl bych otázku ohledně šifrování hesel...

    v současné době to máme v našem frameworku tak, že se vezme login, heslo, pro každý zvlášť se udělá následující funkcí MD5 hash, odstraní se pomlčky a spolu se to uloží do DB oddělené pomocí rovnítka - |.

    public static string GetMD5Hash(string aValue)
            {
                MD5 md5Provider = MD5CryptoServiceProvider.Create();
                Byte[] valueBytes = Encoding.Unicode.GetBytes(aValue);
                Byte[] hashBytes = md5Provider.ComputeHash(valueBytes);
                return (BitConverter.ToString(hashBytes)).Replace(MD5_HASH_DELIMITER, String.Empty);
            }


    Co byste doporučili jako náhradu za MD5? Providerů v System.Security.Cryptography je mraky, AES, SHA256 atd.
    Tu logiku se spojenými hashi bych asi zachoval, ale MD5 jaksi není hodné roku 2016. Díky
    VIRTUALVOID
    VIRTUALVOID --- ---
    MORMEGIL: jo taaak...
    MORMEGIL
    MORMEGIL --- ---
    VIRTUALVOID: Tak on píše, že je chce _stáhnout_, ne zobrazit.
    VIRTUALVOID
    VIRTUALVOID --- ---
    PEPSIN: tak ja neviem, ale byt prehliadac tak ti octet-stream nezobrazim ako obrazok :) skus mu posielat to co naozaj mas... minimalne z toho nazvu suboru sa da mime-type zistit.

    kazdopadne ak sa naozaj jedna o mvc app, a vracias to von z controllera, tak by som rozmyslal o niecom takomto:

    public ActionResult Metoda()
    {
     ...
      return File(ms.GetStream(), "image/jpeg");
    }
    
    PEPSIN
    PEPSIN --- ---
    VIRTUALVOID: VIRTUALVOID: Tak headery vypadaji tak nejak takhle

    Cache-Control: private
    Content-Length: {delkaSouboru}
    Content-Type: application/octet-stream
    Content-Location: traslasierra_16to10.jpg
    Content-Disposition: attachment; filename*=UTF-8''{jmenoSouboru}
    Content-Transfer-Encoding: binary
    PEPSIN
    PEPSIN --- ---
    VIRTUALVOID: No to je mozny, ale v tom pripade mi osvetli jak je to dobre. (a proc to pro jine prohlizece funguje a pro IE jen obcas)


    VIRTUALVOID: hmm mrknu, ten tam skutecne nejspis neji (je tam jen content-disposition attachment... a par dalsich, ale tenhle ne)
    VIRTUALVOID
    VIRTUALVOID --- ---
    imho to s tym streamom nedelas dobre jaromire
    VIRTUALVOID
    VIRTUALVOID --- ---
    PEPSIN: nechyba ti tm nahodou header Content-Type ?
    PEPSIN
    PEPSIN --- ---
    Zdravim mistni odborniky, mam dalsi dotaz ohledne jednoho ASP MVC projektu.

    Potrebuju stahnout obrazky a to budto v puvodni velikosti a nebo resizovane. V puvodni velikosti pouziju proste:
    response.AppendHeader("Content-Length", file.Length.ToString());
    response.TransmitFile(file.PhysicalPath);

    To neni problem. Problem je kdyz je potrebuju resizovat. I to umim, vysledkem je obrazek v pameti. Problem ale nastava v jeho odeslani. Pouzivam nasledujici konstrukci, (resizedImg je typu Bitmap)

    using (MemoryStream ms = new MemoryStream())
    {
    using (var resizedImg = ResizeImage(img, (int)newWidth, (int)newHeight))
    {
    resizedImg.Save(ms, OriginalFormat);

    }

    response.AppendHeader("Content-Length", ms.Length.ToString());
    ms.WriteTo(response.OutputStream);
    }
    Vetsina prohlizecu s tim nema problem, ale v IE (v 11) to z nejakeho duvodu obcas jde a obcas ne. Pritom ve Fiddleru vidim ze se ty data prenasi.

    Setkal se s timhle uz nekdo? Na internetu sjem nasel mraky navodu, od nastavovani cache pro IE pres jinou konstrukci odesilani (vetsinou konstrukce vyndejte reposne.flush a a dejte tam context.HttpContext.ApplicationInstance.CompleteRequest(); ) nic z toho nepomaha. Mohl by me nekdo nasmerovat do nejakeho smeru jak to resit, a nebo aspon poradit nejakou metodiku jak to troubleshootit?
    PEPSIN
    PEPSIN --- ---
    TOOMIX: MEMNON666: PJOTRIK:

    Vsem diky za odpovedi. Momentalne jsem se prave dostal k tehle fazi, vycistit biny, dat clean project a doufat. Na netu jsem nasel ze to muze byt (mimo jine) spatnym nastavenou build akci na XAML main page (ten tu neni, protoze Caliburn, a nemam tuseni jak by se mohl menit ale i tak je to zajimavy smer). Bohuzel jsem momentalne v situaci kdy vse bezi a me se nedari zaboha chybu vyvolat. Pokud na neco prijdu, hodim to sem.
    TOOMIX
    TOOMIX --- ---
    PEPSIN: co úplné smazání bin a obj adresážů a následný rebuild všeho?
    MEMNON666
    MEMNON666 --- ---
    PEPSIN: s necim podobnym jsem se potkal po padu visual studia, pak az po novem nacteni z gitu sem projekt rozchodil ale to ti asi moc nepomuze :D
    PJOTRIK
    PJOTRIK --- ---
    PEPSIN: Potkavam se s tim teda v dost jinych situacich (jediny v cem se shoduji je VS2015), ale podobny situace kdy zacne build nebo prubezna analyza kodu hlasit nesmyslny chyby se mi obcas stanou a jediny co jsem nasel ze pomaha je smazat .vs adresar
    Kliknutím sem můžete změnit nastavení reklam