gpt4 book ai didi

java - 识别调用 Web 服务的用户

转载 作者:行者123 更新时间:2023-12-01 15:02:17 26 4
gpt4 key购买 nike

我有一个网络服务,需要根据调用者的 ID 设置结果。

很容易将服务器上的接口(interface)定义为:

public String[] getUserLogFile(int userId){
return logDAO.getLogs(userId);
}

登录时,Web 服务返回一个 userId。客户端可以在以后的调用中包含此 userId。但是,如果客户端设置了自己的 userId,则调用者可以尝试其他 userId。这会带来安全问题。

识别 Web 服务调用者的最佳方法是什么?服务器是Java的。客户端可以是 iPad、.Net、Android 等。

谢谢。 J.

最佳答案

一个简单但有效的安全策略是使用 SSL 保护您的 Web 服务,然后传递 basic authentication header每次通话时。此设置的 SSL 部分至关重要。您的客户端将在每次调用中包含以下形式的授权 header :

Authorization: Basic QWxhZGluOnNlc2FtIG9wZW4=

编码字符串是用户名和密码的串联,base 64 编码

Base64(username:password)

这负责处理客户端的责任。在服务器端,您想要检查所有传入调用的​​授权 header 。如果存在,对其进行解码,拆分用户名和密码,并使用这两条信息来验证请求。通常在身份验证时为用户创建安全主体,其中包含有关用户及其角色(或应用程序授权)的基本信息。为了提高效率,这项工作通常在网络过滤器中完成。我会推荐以下库,它们可以为您自动执行许多服务器端任务:

关于java - 识别调用 Web 服务的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13465967/

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