winforms 在用户身份验证时避免重定向到localhost

rlcwz9us  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(148)

我在windows窗体中创建了一个应用程序。使用用户名和密码登录到这个应用程序。只有在用户通过身份验证后,应用程序才能工作。我在Internet上的一个php页面上进行用户身份验证。使用HttpClient,我将用户名和密码发送到php页面,并发送有关哪个应用程序需要授权的信息。如果用户名和密码输入正确,我用json从php页面发送一轮值,这样用户就可以在授权的屏幕上操作了。
到目前为止,一切都很好.然而,有一个问题:如果用户用Wampserver或类似的程序设置了一个本地服务器,并将我的域名从host文件重定向到本地服务器,那么winforms的用户名和密码将被发送到这个本地服务器,用户可以从这个本地服务器生成适当的参数,并以json格式发送到winforms。
用反编译等方法找到windows窗体中的参数并不难,所以我觉得很容易找到参数,而且我觉得用本地服务器的方法,用户可以很容易的绕过我的授权请求,如何克服这样的问题呢?无论如何,我怎么才能从互联网上的真实的网站上验证呢?
在我的研究中,我在互联网上,我读到一些东西,如用户名和密码可以与时间戳一起发送到php页面,并与哈希值进行比较。然而,我很困惑。因为我没有在数据库中保存任何哈希值。

k10s72fa

k10s72fa1#

我想,事情会是这样的:

var uri = new Uri("http://example.com/login.php");
var ipv4 = Dns.GetHostAddresses(uri.Host)[1];
if (ipv4.ToString() == "127.0.0.1")
{
    // Localhost...
}

相关问题