Java网络编程?

5

首先,在我提问之前,我想指出这个问题是为了学习而来的。我想了解如何扩展我的Java和网络安全(尽管很少)知识。

你可以如何使用Java进行网络安全和反击呢?我已经使用服务/套接字一段时间了(用于非系统安全事项),但我并不是很理解我在做什么。自然而然地,我应该学习网络知识,但从哪里开始呢?有一个协议适用于所有事情,甚至有协议来管理协议。进一步扩展,你如何使用Java来探测端口、捕获数据包或远程关闭/打开端口呢?

我猜,更好的表达这个问题是,是否有人知道任何好的资源,可以让我更深入地了解Java如何处理网络安全、反黑客和恶意软件的控制?

2个回答

5
我认为最好的做法是先学习概念,然后再考虑使用Java来实现这些概念。你对一些知识点存在一些盲区(例如,“远程打开端口”是什么意思我甚至都不知道),因此最好先巩固你对网络工作原理的理解。我没有关于网络安全方面推荐的书单,但可能其他人会有!如果你能找到一份拷贝,那么按照我的观点,从经典著作《UNIX网络编程》开始加强基础知识也未尝不可。

2
你无法使用Java来嗅探端口。
你无法使用Java来捕获数据包。
你无法使用Java远程杀死/打开端口。
Java除了通过安全沙箱内部处理自己的应用程序之外,不处理网络安全。
Java不处理反黑客。
Java除了通过安全沙箱和字节码验证器内部处理自己的应用程序之外,不处理恶意软件遏制。
以上这些事情中的一个可以通过Java的附加组件完成,但基本上Java不是正确的工具。

嗯,为了更清楚地表达:这些事情只能用C/C++来做吗?您推荐我应该研究哪种其他语言呢? - ahodder
我认为其中有几个太过强硬。你当然可以使用Java进行端口嗅探,而jnetpcap作为一个非常受欢迎的本地libpcap封装器,让你可以进行各种低级别的基于数据包捕获的活动。如果“反黑客”指的是发动DDOS攻击、SQL注入攻击或其他网站入侵攻击,那么在Java中也没有理由不能做到这些东西。另一方面,涉及实际病毒或各种二进制代码注入的内容,你肯定无法使用Java完成。 - Ernest Friedman-Hill
@Ernest Friedman-Hill:关于端口嗅探,不行。在Java中,你只能进行传统的套接字I/O操作。你不能嗅探别人的端口。但是端口扫描可以,但他没有问这个。关于数据包捕获,我确实提到了一个附加组件。 "反黑客"并不意味着"黑客",而是指对其进行反制 - user207421
@AedonEtLIRA:它严格限制于C、C++和任何可以直接与本地操作系统API通信的其他语言,此外,在你提到的大多数情况下,需要将设备驱动程序插入到TCP/IP协议栈中。其中一些可以通过libpcap或其Windows版本winpcap来完成。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接