win32security.logonuser是安全的吗?或者以明文形式发送的输入

时间:2018-03-13 15:32:20

标签: security frontend backend pywin32

我试图验证用户凭据是否记录了他。 此输入从前端发送到后端。 我需要找到一种方法来保护通过一直发送的信息(端点计算机到后端)。最好的方法是什么?并且win32security.logonuser足够安全(我在后端使用它)。 谢谢!

1 个答案:

答案 0 :(得分:1)

[GitHub]: mhammond/pywin32 - Python for Windows (pywin32) Extensions是原生 Win API 的包装器。

[ActiveState]: win32security.LogonUser(这是我能找到的官方文档中最接近的)只是[MS.Docs]: LogonUserW function的包装器。以下是后者所述的内容:

  

lpszPassword [in,optional]
  指向以null结尾的字符串的指针,该字符串指定 lpszUsername 指定的用户帐户的明文密码。使用完密码后,通过调用SecureZeroMemory功能清除内存中的密码。有关保护密码的详细信息,请参阅Handling Passwords

如果您查看源代码:[GitHub]: mhammond/pywin32 - (b222) pywin32/win32/src/win32security.i:1021PyObject *PyLogonUser(PyObject *self, PyObject *args, PyObject *kwargs)),您会注意到函数末尾的

  • SecureZeroMemory
  • PyWinObject_FreeWCHAR

被调用敏感数据。

因此,所有指南都得到满足,当然密码字符串在内存中的时间窗口(在填充和释放它之间,这里是 Python 开销将增加几毫安/纳秒),但这与您使用此方法一样安全。