零基础入门网络渗透到底要怎么学?

article/2025/10/7 23:34:46

在这里插入图片描述

前言:

很多朋友问我,想搞网络安全,编程重要吗,选什么语言呢?

国内其实正经开设网络安全专业的学校很少,大部分同学是来自计算机科学、网络工程、软件工程专业的,甚至很多非计算机专业自学的。因此不像这三个专业,有系统的课程体系,大一教什么,大二教什么,大三又教什么,那么清晰明白,网络安全这条路很多都是自学摸索。

我从大二开始入坑网络安全,至今也有十个年头了,也见过许许多多自学成才的例子,工作这些年,先后学习过C、C++、Java、Python、Objective-C、JavaScript、TypeScript,现在回过头来,有一些自己的思考。

很多培训班,一上来就给你讲一堆各种攻击手法、各种工具使用,很多人搞得一头雾水,为什么要学这些,这些背后的原理是什么全都不知道。

我主张学习网络安全可以像做软件开发中的“敏捷开发”,先从一个最小的核心开始,逐步迭代,已臻完善。

这个最小的核心是什么呢?

如果你是偏向于搞网络渗透的方向,这个最小核心就是:

HTTP + Web + 漏洞扫描工具

先把HTTP协议的工作机制掌握了,然后学习Web技术,包括前后端如何协同工作,浏览器如何工作,服务器又是如何处理一个HTTP请求,一个网站是如何搭建起来的等等。接着再学习使用一些Web漏洞扫描工具,学习网站漏洞的概念,开始有“安全”这个意识。

围绕Web相关的知识掌握的差不多了,然后可以开始迭代起来了:

  • 1、有了上面这些基本知识,可以开始学习各种花式的Web漏洞攻击,什么XSS、CSRF、SQL注入、SSRF等等。
  • 2、学习漏洞原理的过程中,开始熟悉一些Web服务器的工作机制,日志技术,容器技术这些知识,以及背后的操作系统Linux/Windows的基础知识。
  • 3、对Web安全有了一些基础,开始把眼光从Web放宽到更广阔的网络安全,这个时候,就需要进一步学习HTTP背后的TCP/IP网络协议族。这时你将会陆续接触到什么是TCP劫持、DNS劫持、ARP欺骗、TCPSYN洪水攻击等等。
  • 4、对网络攻击的手法了解到这个阶段,现有的工具可能就满足不了你的需要,你需要定制一些爬虫、扫描、漏洞POC或其他工具了,是时候来学习一些工具编写了,你可以开始学习Python编程,门槛最低,实用性最强。
  • 5、安全玩到后面,都是在玩漏洞。而学到后面,越来越多时间开始接触到操作系统层面的漏洞,这个时候你就要开始学习一些C语言,通过C知道代码程序底层的执行原理,拓展自己在操作系统层面的知识深度。
  • 6、有了上面这些技术的打底,你的眼界将会被打开,但随之而来,你会发现自己要学的还有很多,但至少到这个时候,你不再像一开始那么迷茫,而是知道自己接下来该去补充哪些东西。

学习路线图

在这里插入图片描述

总结:

回答一开始那个问题,对于网络渗透方向,编程不是一开始就要做的事,也不如程序员拿它吃饭那么重要,但即便如此,你还是得学一点,Python最佳推荐,C也需要学一些,至于C++嘛,了解即可,不做强求。

【系统学习资料&工具分享】

在这里插入图片描述


http://chatgpt.dhexx.cn/article/7SPVeUIT.shtml

相关文章

MyBatis 声明JdbcType. 如#{name,jdbcType=VARCHAR}

在我们结合MyBatis框架使用时,发现如下问题,当SQL语句为insert或者update时,如果其变量含有null值,会报错: ###Cause: java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0SL: Unsupported …

Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this

控制台报错信息如下 控制台报错信息如下: Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration prope…

mybatis惯用jdbcType数据类型

mybatis常用jdbcType数据类型 MyBatis 通过包含的jdbcType类型 BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED TINYINT REAL VARCHAR BINARY BLOB NVARCHAR SMALLINT DOUBLE LONGVARCHAR VAR…

jdbcType报错

resultMap中映射没注意jdbcType类型直接报错: Cause: org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.int 随后检查XML文件映射问题&#…

MyBatis的jdbcType的作用

今天在工作中,碰到在MyBatis的Mapping中看到了jdbc这个参数,瞬间懵逼,于是百度了下。 Mybatis中的jdbcType的作用使用MyBatis框架做更新操作时,在该字段需要更新的内容为空时,就会出现1111错误,也就是无效的…

Mysql中是text,jdbcType对应类型及jdbcType与javaType对应关系

如果Mysql中是text,则jdbcType对应LONGVARCHAR,java type对应String

MySQL text类型对应mybatis jdbcType类型

MySQL 的 text 类型对应 JAVA 中的数据类型是 String。对应MyBatis的类型是 LONGVARCHAR 。 例&#xff1a; <result column"field1" property"field1" jdbcType"LONGVARCHAR" />注意&#xff0c;在MyBatis支持的JDBC类型中是没有 TEXT …

Java-JDBCTemplate

Java-JDBCTemplate JDBC Template的继承结构 使用步骤&#xff1a; 代码 Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发 JDBC Template的继承结构 使用步骤&#xff1a; 1. 导入jar包 2. 创建JdbcTemplate对象。依赖于数据源 DataSource JdbcTempla…

Mybatis中JdbcType的使用

MyBatis 插入空值时&#xff0c;需要指定JdbcType mybatis insert空值报空值异常&#xff0c;但是在PL/SQL不会提示错误&#xff0c;主要原因是mybatis无法进行转换 jdbcType的使用场合&#xff0c;只有当在insert&#xff0c;update和delete中有空字段时&#xff0c;需要使用…

Mybatis框架中jdbcType=DATE 和 jdbcType=TIMESTAMP 两种类型的区别

也算不上是Mybatis的bug&#xff0c;只能说是特性&#xff0c;本来就是这么设置的&#xff0c;在连接oracle数据库的时候&#xff0c;当jdbcType"DATE"类型时&#xff0c;返回的时间只有年月日&#xff08;yyyy-MM-dd&#xff09;的,当jdbcType“TIMESTAMP”的时候&a…

MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解

转载请注明来源-作者loongshawn&#xff1a;http://blog.csdn.net/loongshawn/article/details/50496460 1. Mybatis JdbcType与Oracle、MySql数据类型对应列表 MybatisJdbcTypeOracleMySqlJdbcTypeARRAYJdbcTypeBIGINTBIGINTJdbcTypeBINARYJdbcTypeBITBITJdbcTypeBLOBBLOBBL…

JDBCTemplate

目录 1、什么是JDBC 2、什么是JDBCTemplate 3、快速上手JDBCTemplate 4.调用JdbcTemplate的方法来完成CRUD的操作 1、什么是JDBC JDBC&#xff08;Java DataBase Connectivity,java数据库连接&#xff09;&#xff1a;是一种用于执行SQL语句的Java API&#xff0c;可以为多…

MyBatis中的JdbcType映射介绍

Java项目涉及到数据库交互&#xff0c;以往常用的是JDBC&#xff0c;现在则有Hibernate、Mybatis等这些持久化支持。 项目中用到了MyBatis&#xff0c;和JDBC最显著的区别&#xff0c;就是SQL语句配置化&#xff0c;通过xml文件定义SQL语句&#xff0c;当然JDBC也可以将SQL配置…

jdbctype(jdbctype=numeric)

jdbctype 和 javatype的区别 jdbc是数据库的数据类型&#xff0c;Java是那几种类型加类类型使用mybatis框架做更新操作时&#xff0c;在该字段需要更新的内容为空时&#xff0c;就会出现1111错误&#xff0c;也就是无效的列类型&#xff0c;这个时候你就要使用jdbctype。至于什…

JdbcType

JdbcType介绍 数据库列字段都是有类型的&#xff0c;不同的数据库有不同的类型。为了表示这些数据类型&#xff0c;Java源码是采用枚举来定义的&#xff1a; public enum JDBCType implements SQLType {TINYINT(Types.TINYINT),SMALLINT(Types.SMALLINT),INTEGER(Types.INTEG…

MyBatis 所有的 jdbcType类型

MyBatis处理MySQL字段类型date与datetime 1&#xff09; DATETIME 显示格式&#xff1a;yyyy-MM-dd HH:mm:ss 时间范围:[ 1000-01-01 00:00:00到9999-12-31 23:59:59]2&#xff09; DATE 显示格式&#xff1a;yyyy-MM-dd 时间范围&#xff1a;[1000-01-01到9999-12-31]3&#…

(转)mybatis常用jdbcType数据类型

阅读目录 1 MyBatis 通过包含的jdbcType类型2 Mybatis中javaType和jdbcType对应和CRUD例子3 Mybatis中javaType和jdbcType对应关系 4 oracle数据类型和对应的java类型 回到顶部 1 MyBatis 通过包含的jdbcType类型 BIT FLOAT CHAR TIMESTAMP O…

Harris Corner 角点检测

角点是同时在多个方向上变化的点&#xff0c;相对于边缘&#xff0c;更加具有独特性。角点检测普遍应用在很多场合&#xff0c;如指纹检测中的指纹特征提取&#xff0c;稀疏光流计算。 Harris corner角点的基本思想是通过一个小窗口来观察&#xff0c;因此很容易识别出角点来。…

Harris角点检测算法的实现(详细版)

前言 无 一、角点是神马&#xff1f; 角点被定义为图像边缘曲线上曲率极大值的点或图像亮度变化剧烈的点 &#xff0c;这些点既保留了图像的重要特征&#xff0c;又有效地减少了信息的数据量。 二、Harris角点检测算法原理 Harris算法以 Morave算法为基础&#xff0c;如果…

harris角点检测算法实现

算法流程&#xff1a; 1、将图像转换为灰度图像&#xff1b; 2、利用Sobel滤波器求出 海森矩阵 (Hessian matrix) : 3、将高斯滤波器分别作用于Ix、Iy、IxIy&#xff1b; 4、计算每个像素的 R det(H) - k(trace(H))。det(H)表示矩阵H的行列式&#xff0c;trace表示矩阵H的迹。通…