Witam,

Czy ktoś miał może do czynienia ze skanami z Fortify? Ostatnio mój kod przeszedł coś takiego i dostałem następujące błędy. Może ktoś będzie w stanie mi poradzić:

  1. Heap Inspection
    Z tego co wyczytałem ogranicza się to do tego, ze nie powinno się przechowywać danych jak hasła w na przyklad stringach ponieważ można to odzyskać z pamięci. Metoda w której został ten błąd wskazany używa Memory stream i Crypto Stream i konwertuje to na SecureString.
    Konwertuje to za pomocą:
    Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount).ToCharArray()
    Z tego co mi się wydaje to problemem jest ta część GetString, prawda? Ponieważ w tym momencie ten string zostaje zapisywany w pamięci a dopiero potem konwerstowany na CharArray i SecureString.

Jakakolwiek porada mile widziana

2)Unsafe Native Invoke
Mam taka oto klase:

    class Win32NativeMethods  
    {
        
        [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode )]  
        public static extern int LogonUser( string lpszUserName, string lpszDomain,IntPtr lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);  
        [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]  
        public static extern int DuplicateToken( IntPtr hToken, int impersonationLevel, ref IntPtr hNewToken);  
}

W momencia wykorzystywania przeze mnie metody LogonUser

int myInt = SecureNativeMethods.LogonUser(userName, domainName, p, (int)logonType, (int)logonProvider, ref logonToken);

pokazuje mi się ów błąd, ale jak używam DuplicateToken

if (Win32NativeMethods.DuplicateToken(logonToken, (int)ImpersonationLevel.SecurityImpersonation, ref logonTokenDuplicate) != 0)

to taki błąd nie zostje wytknięty.

Z góry dziękuję za pomoc.
Pozdrawiam