Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javaservlet:只允许自己的客户端_Java_Android_Http_Servlets_Encryption - Fatal编程技术网

Javaservlet:只允许自己的客户端

Javaservlet:只允许自己的客户端,java,android,http,servlets,encryption,Java,Android,Http,Servlets,Encryption,我正在开发一个用于java客户端的服务器端api(我也写过) api是用jersey(RESTful)编写的,并在tomcat服务器上运行。它提供的数据作为Json字符串传递给客户端,所有通信都通过Http执行 现在,我想确保只有我自己的客户端程序能够访问api(目前,作为其http,每个人都可以通过普通浏览器接收json数据)。因此,我正在寻找一种方法,用一个键或类似的东西将我的客户端程序“识别”到api。我首先考虑使用用户代理进行身份验证,但这很容易被复制。所以我需要一种动态变化的密钥或者类

我正在开发一个用于java客户端的服务器端api(我也写过)

api是用jersey(RESTful)编写的,并在tomcat服务器上运行。它提供的数据作为Json字符串传递给客户端,所有通信都通过Http执行

现在,我想确保只有我自己的客户端程序能够访问api(目前,作为其http,每个人都可以通过普通浏览器接收json数据)。因此,我正在寻找一种方法,用一个键或类似的东西将我的客户端程序“识别”到api。我首先考虑使用用户代理进行身份验证,但这很容易被复制。所以我需要一种动态变化的密钥或者类似的东西

有什么好办法

我在网上搜索了一下,但没有找到正确的答案(可能是错误的关键字?),所以我很高兴看到关于这个主题的每一个提示和/或链接



编辑:客户端程序是一个android应用程序。我想确保没有人正在创建一个类似的应用程序,并将我的服务器用于他的目的。

如果攻击者拥有一个客户端,那么几乎没有任何安全性最终是不会被破坏的


一个很好的开端是双向SSL身份验证(客户端和服务器证书)。这是开箱即用的支持,只需要很少的代码更改。

如果攻击者拥有客户机的许可证,则几乎没有最终无法破坏的安全性


一个很好的开端是双向SSL身份验证(客户端和服务器证书)。这是开箱即用的支持,只需要很少的代码更改。

您不能这样做。任何人都可以让他们的浏览器看起来和你的客户端一模一样,因为它是在他们自己的计算机上运行的代码。典型的措辞是Facebook和其他具有应用程序功能的网站使用的“api密钥”。这些键通常有很长的长度。但是,通过http发送的所有内容对“internet”都是可见的,因此没有实际的安全价值。@abiessu api密钥听起来很有趣。唯一的问题是,正如您所提到的,每个人都可以从http包中读取其中一个Keay,然后简单地重用它。您不能这样做。任何人都可以让他们的浏览器看起来和你的客户端一模一样,因为它是在他们自己的计算机上运行的代码。典型的措辞是Facebook和其他具有应用程序功能的网站使用的“api密钥”。这些键通常有很长的长度。但是,通过http发送的所有内容对“internet”都是可见的,因此没有实际的安全价值。@abiessu api密钥听起来很有趣。唯一的问题是,正如您所提到的,每个人都可以从http包中读取一个Keay,然后简单地重用它。