Java 确保http post来自我的小程序而不是其他人?

Java 确保http post来自我的小程序而不是其他人?,java,php,mysql,applet,Java,Php,Mysql,Applet,我有一个小程序,它通过http post请求与php通信,然后我的php脚本将数据插入mysql数据库。所以问题是,我想任何人都可以发出http post请求并向我的mysql数据库添加数据,如果他们现在使用“post”名称,当然我不希望这样 因此,我希望有一个som解决方案,我的php可以确保http请求确实来自我的小程序,而不是其他任何人。如果您能提出解决这个问题的建议,我将不胜感激。正在发送的数据不包含任何机密,因此,如果可以在不加密的情况下解决,则不需要对其进行加密 提前感谢。如果您无法

我有一个小程序,它通过http post请求与php通信,然后我的php脚本将数据插入mysql数据库。所以问题是,我想任何人都可以发出http post请求并向我的mysql数据库添加数据,如果他们现在使用“post”名称,当然我不希望这样

因此,我希望有一个som解决方案,我的php可以确保http请求确实来自我的小程序,而不是其他任何人。如果您能提出解决这个问题的建议,我将不胜感激。正在发送的数据不包含任何机密,因此,如果可以在不加密的情况下解决,则不需要对其进行加密


提前感谢。

如果您无法在通信时使用加密,那么答案就是您无法确定。

事实上,即使使用加密,也无法确定请求是由您的小程序还是由完全模仿其行为的其他程序发出的。您需要构建您的应用程序,以便它能够处理此问题。

加密将有助于保护您为实现所需而采用的任何方法,但它自己却无能为力

您需要的是对post消息进行身份验证。这通常是通过让您的客户端(这里是applet)使用只有applet和服务器知道的密钥对POST消息进行签名()来实现的。这里的挑战是您需要在客户端安全地存储密钥


如果我是你,我会检查用户身份验证,并将小程序托管在网站的安全区域,确保小程序在执行POST请求时重新使用已验证用户的HTTP会话。除了此之外,还添加了针对标准攻击(即跨站点请求伪造、重播攻击等)的基本保护措施。此设置将确保授权用户从您的站点发出请求。

您可以通过在客户端生成RSA密钥对并将公钥发送到服务器来注册小程序。然后,服务器跟踪每个已注册客户端的公钥

在每一篇文章中,客户机都会使用私钥对一些数据进行签名,并包括签名和公钥(或公钥的散列)来标识自己。服务器验证公钥是否已注册,并验证签名

除了从客户端窃取私钥或破坏RSA加密之外,没有任何方法可以模仿这种情况。嗯,我想你可以录制和重播别人的帖子。这个问题还有待解决


但是,您可以让一个假客户端按照注册步骤发送公钥,然后该假客户端可以与所有有效客户端一起自由发布。因此,这个问题也需要解决。

同意-如果您没有加密“安全”机制,那么“嗅探”通信和欺骗通信可能相对容易。