std::string 内の機密データの安全なクリア
パスワードなどの機密データをメモリに保存するには、安全なクリア メカニズムが必要です。メモリリークの可能性。 char* 配列はこの目的のために SecureZeroMemory API を提供しますが、std::string を使用すると、同様のソリューションを実装する必要があるという問題が生じます。
std::string
割り当て解除時にメモリを安全にゼロにするカスタム アロケータを作成する試みが行われました:
<code class="cpp">namespace secure { template <class T> class allocator : public std::allocator<T> {...} }</code>
しかし、このアロケータは小さな文字列に対して常に呼び出されるとは限らず、機密データが漏洩したままになる可能性があることが判明しました。
解決策: 機密データには std::string を使用しないでください
結論としては、現在定義されている std::string は機密データの保存には適していません。この特定の目的のために、カスタム実装または代替データ構造を考慮する必要があります。
以上が「std::string」に保存されている機密データを安全にクリアするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。