有没有办法在java中检查连接到服务器套接字的程序类型。我有一个示例服务器,它是一个基本的1页Web服务器。但我只想允许来自特定应用程序的连接。比如网页浏览器。因为我不希望任何人有一个随机程序并连接到我的服务器试图破解它。我研究过但没有成功。如果您想了解我的项目详情,请转到https://github.com/sebagius7110/ServerSebs
我需要做的只是连接,如果程序例如是谷歌浏览器,它允许连接通过。但是,例如,它需要确保它具有Web界面,因此没有人可以随机创建一个名为google chrome的应用程序并连接到它。这是一个安全问题。
我知道这是一个很长的问题,而且很难,但提前谢谢。
答案 0 :(得分:0)
任何人都可以伪装成Google Chrome或任何其他用户代理。
我认为您的要求是对拒绝服务(DOS)的支持。您必须查看各种Web容器支持的DOS。这是特定于容器的。
DOS允许您对传入请求施加限制。在您的情况下,您的一个限制参数是User-Agent。您应该允许您感兴趣的用户代理。
答案 1 :(得分:0)
有没有办法检查哪个程序连接到套接字?
没有办法。
在套接字级别,服务器没有关于在客户端启动连接的程序的信息。
在HTTP协议级别,在HTTP请求消息中提供信息以识别请求来自的“用户代理”的类型。然而,这不可靠。试图破解您的人有可能将误导信息放入User-Agent标题中。
简而言之,这种防止黑客攻击的方法不会有效,甚至可能不值得实施。
此外......什么阻止某人使用(比方说)真正的谷歌Chrome应用程序作为他们的黑客工具?
(无论您使用何种编程语言,相同的答案都适用......)