gpt4 book ai didi

java - 客户端(java standalone client)应用认证和用户认证的区别

转载 作者:太空宇宙 更新时间:2023-11-03 14:21:24 25 4
gpt4 key购买 nike

在 webapplicaiton 的情况下,我可以理解客户端身份验证和用户身份验证之间没有区别;忽略 XSS 和其他漏洞,web 客户端由服务器/servlet 生成。

但假设您有一个与 Java 服务器应用程序通信的 Java 客户端应用程序;服务器有一个与之关联的证书,以便客户端可以验证和验证服务器是否受信任。现在客户端也有一个证书(client cert),这样服务器就可以验证这是否是一个可信的客户端;一旦完成这种相互身份验证,就可以将用户证书(用户证书)传递给服务器,而不是向用户显示用户名/密码对话框。

问题是在这种情况下拥有(客户端证书)是否有任何优势/用途;或者仅凭用户证书就足以信任客户端吗??

我知道这是一个显而易见的问题/但不能创建一个恶意客户端应用程序吗??客户端证书也将针对这种情况提供保护。

最佳答案

任何时候你有一个客户端服务器应用程序,服务器需要假设客户端被破坏。当发生身份验证时(用户名/密码、证书等……无关紧要),服务器应授予用户某些使用服务器功能的权限。每当向服务器发出请求时,服务器都需要检查经过身份验证的用户是否有权执行该操作。

相信客户端只发出授权请求会使自己容易受到攻击。如果您检查服务器上的权限并删除输入,那么您不必担心用户是否正在使用受信任的客户端,因为即使是不受信任的客户端也无法比受信任的客户端使用相同的身份验证凭据做更多的事情.

无论您使用的是网络客户端还是独立客户端,这些原则都适用。即使在 Web 应用程序中,我也可以编写新的客户端和 POST 数据,使用 RESTful 服务,或者通常与 Web 服务器通信并完全绕过您呈现给我的 Web UI。

关于java - 客户端(java standalone client)应用认证和用户认证的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com