C# защита строки в памяти - PullRequest
1 голос
/ 19 марта 2020

Я обновляю проект C#, чтобы сделать его более безопасным (к нему предъявляются очень строгие требования). Одним из требований является защита некоторых данных в памяти для предотвращения «несанкционированного» доступа к ним. Я сделал свое исследование и закончил с «ProtectedMemory.Protect». Я не эксперт в C#, поэтому я не уверен, правильно ли это делается или нет. Упрощенный пример того, как я это реализовал:

public class User
{
    public string Name
    { 
        get 
        { 
            return Encoding.UTF8.GetString(ProtectedMemory.Unprotect(_name, MemoryProtectionScope.SameLogon)); 
        }
        set 
        { 
            _name =  Encoding.UTF8.GetBytes(value);
            ProtectedMemory.Protect(_name, MemoryProtectionScope.SameLogon);
        }
    }

    private byte[] _name;
}

Это имеет смысл вообще? : D

1 Ответ

0 голосов
/ 19 марта 2020

Если вы выполняете ASP. NET Основные приложения, обратите внимание на защиту данных: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/using-data-protection?view=aspnetcore-3.1

Оказывается, ниже не рекомендуется. Спасибо за указание на это.

В противном случае, если вам разрешено использовать небезопасный код, проверьте SecureString здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...