2012-05-18 103 views
0

当我建立一个应用程序,将提供给其他应用服务验证客户端(让我们假装喜欢它解决微分方程)。因此,我的DifEq服务将始终运行,客户端应用程序可以随时发送请求来解决DifEqs。使用进程间通信

这将使用套接字或管道是微不足道的。

问题是一些应用程序恶意地想要发送线性方程而不是微分方程,所以我想注册应用程序,我知道正在向我的应用程序发送适当的DifEqs。据我所知,传统套接字在这里出现故障。

理想情况下,我希望能够查看有关正在提出请求的应用程序的一些信息,(通过某些应用程序的元数据,通过与我的网站通信或通过某些其他,未知的方法)确定它是一个可接受的DifEq应用程序。此外,如果没有底层操作系统的根/管理级别折衷,这种理想的方法将不会被欺骗。如果线性方程的应用程序也是一个root工具包,我会承认会被打破。 :)

我需要能够在Windows,OS X和Linux(也许是Android)上做到这一点;但我承认它可能不是所有平台上的同一解决方案。那么,你将如何实现这个目标(如果合适,指定你正在关注的平台)?我已经做了很多服务器端开发的,但它一直太多的年,因为我做了任何客户端开发的浏览器之外,世界是当今非常不同的比那时。

+0

我不认为我得到它。听起来像我: 1.接受任何连接 2.处理请求 3.如果有人给你一个错误的请求,断开它们。 4.考虑一个黑名单,并停止接受超时从他们的连接? –

+0

在实际应用中,我不知道一个请求是否是“好”或“坏”的方式。我希望能够标记数据,以便我知道它来自“客户端A”而不是“客户端B”,但如果客户端B模仿客户端A非常容易,那么这样做并不是我的好处。假设我可以区分请求,我如何知道哪些客户端发出错误请求(假设连接不持久)?请记住,这是全部在同一台机器上,所以(如果这是可能的,这是一个延伸,我意识到),它必须是一个操作系统级别的操作来完成它。 –

回答

0

我认为你的问题有点混淆说到DifEQ vs LinearEQ。

这听起来像你只是在寻找一种常规方式来验证客户端是否有权连接。在这个问题上有很多需要阅读的内容。通常的方法是使用SSL证书来验证客户端的身份。您还可以通过SSH隧道,或使用OAUTH等。

您必须在网络上进行更多的挖掘才能了解哪种认证适合您的方案。你提到'不可欺骗'。我认为人们通常最终将私钥的证书编入他们的应用程序中。这将阻止所有的,但非常敬业和有经验的黑客。