https://www.jianshu.com/p/6dcebd54fb24

(本文源于转载或摘抄整理)

2016-06-12 Fooying 优主张
最近比较忙,灵感稍微有点缺乏,本着宁缺毋滥的想法,所以一直也没憋出一篇文章来,希望大家见谅,想了想,整理了一篇关于 Web学习的文章,因为总有人会问类似的问题,所以想着直接整理下以前回答以及自己的一些经验,我想对大家的学习应该有一些参考价值!这是该系列的第一篇,后续应该还有有工具等其他篇。

我接触安全行业有8年了,在高中的时候开始感兴趣并且学习安全的,启蒙老师是《黑客X档案》以及《黑客防线》,后来才看到的《非安全手册》,基本刚开始的时候,很多人学的估计都是网吧黑客(万象之类的)、黑站(很多人估计第一个黑的就自己学校的),我也不例外,反正在网吧免费上网的那段日子是快乐的,至今还印象很深刻,挺怀念那段日子的,那时候留校,每周的生活费基本就花在买书上了,虽然生活周边找不到志同道合者,不过在网络上有一堆朋友。

其实在我接触安全之前,我最早接触的是编程,我记得最早学的是我姐他们上课的书,是谭浩强的《C语言》,再后来参加信息奥赛,学的 Pascal,以及后面自学了 VB、Delphi(这个还是受啊D注入工具影响的)、C#、Python等,甚至于易语言我也学了,还用了挺长一段时间。

所以首先要推荐的是编程,我觉得学习安全必须得掌握一定的编程,本质上,Web 开发与 Web 安全是不分家的,所以说要求掌握一定的 Web 开发能力,顺带一些脚本开发、数据库查询能力:
1、基本的HTML/CSS/JavaScript
前两者就不说了,JS 推荐书籍《JavaScript DOM 编程艺术 》
2、Pyhton
我觉得 Python 是身为黑客必备的编程语言,推荐书籍《Python 核心编程》,现在中文版最新应该是第三版,至于有同学会问学2.x好还是学3.x,我的建议是学3.x,虽然现在很多老的代码是2.x,不过3.x是趋势,另外其实不管是3.x还是2.x,掌握一个,再切换都很容易
3、结构化查询语言 SQL
SQL 的学习是必要的,比如说 SQL 注入,就要求前提掌握 SQL,因为我没有专门的去买书学过 SQL,大部分是通过网上资料自学,因为没看过,所以没什么书籍可以推荐,推荐下w3school的教程,http://www.w3school.com.cn/sql/

编程方面就推荐这三部分把,我觉得是基本的必须要学的,其他的比如 PHP,我觉得也很有必要,比如 PHP注入、PHP代码审计等,还有 Web 漏洞里常见的有 Struts 漏洞、Java反序列漏洞,是否 Java 也需要学下?我觉得精力有限,因人而异,也看自己的方向,更多的看自己在学习、研究过程中的需求,碰到不懂的就加强下,就针对性的去学习,但不可能说追求所有都精通之类的。

后来的话,陆续也看了一些 Web 安全方面的书籍,相关的书籍比较多,我就不一一列举了,就推荐一些我觉得不错的中文书籍(因为我英文不好,虽然也看了几本英文书,但是还是不好意思推荐):
1、《Web 前端黑客技术与揭秘》 前端黑客必备,cos 和 xisigr 出的书
2、《白帽子讲Web安全》道哥出的书
3、《黑客攻防技术宝典-Web实战篇》
4、《Web之困》
5、《Web应用安全权威指南》
6、《SQL注入攻击与防御》
7、《XSS跨站脚本-攻击剖析与防御》

这里同样不展开,在细分领域也有不同的书,具体的我也不多做推荐了,这里关于 XSS 特别推荐下 PKAV 团队整理的思维导图 (http://pkav.net/XSS.png), (http://pkav.net/XSS2.png), 关于PHP 方面推荐下 80vul,也就是黑哥他们团队的成果:https://code.google.com/archive/p/pasc2at/wikis/SimplifiedChinese.wiki

其他的一些我觉得需要学习或者了解的:
1、需要掌握 OWasp Top 10,包含原理、测试方法、防护方法(https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project)
2、需要了解掌握网络请求
3、掌握使用一些安全工具(后续文章)
4、学会关注、分析漏洞和编写 PoC
5、关注一些网站,关注最新的安全/漏洞动态、技术(后续文章)
6、关注一些安全圈微信公众号/专栏等
7、Twitter 是一个获取最新漏洞、最新技术点的好地方,前提是你要关注些大牛(这个后续考虑单独文章来讲)
8、安全公司/甲方公司安全团队除了人品之外,更多时候看中的是个人的实战能力,以及做过的一些事,所以建议可以适当的刷一些 SRC(后续整理列表)、写一些漏洞分析、PoC等
9、虽然我不想承认,但是适当的参加一些 CTF 也是不错的
10、融入这个圈子,比如参加一些安全会议等

接下来,推荐几个我觉得可以作为参考的技能表、知识整理和问答:
1、http://blog.knownsec.com/Knownsec_RD_Checklist/index.html 来自我们团队的知道创宇技能表,当前最新版本 3.1(点击『阅读原文』访问)
2、零基础如何学习 Web 安全? https://www.zhihu.com/question/21606800/answer/22268855
3、西电信安协会-技能时间轴 http://file.anquanquan.info/tuijian/jinengzhou.pdf
4、i 春秋学习规划图 http://www.ichunqiu.com/main/#study-plan

整理来说,如果一定要让我给一个路线的话,我觉得按照我从上到下的路线去学习,以及最后的建议去掌握这些技能即可,当然,文章中可能还欠缺一些内容,比如工具的掌握等,后续会继续写,大家可以关注我后续的文章。

然后,最重要的,更多时候,我觉得光看不练是没有用的,用黑哥的话『做』,所以不止是学习,更多的时候去动手操作,去实践。

作者:JackyTsuuuy
链接:https://www.jianshu.com/p/6dcebd54fb24
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Web 安全入门-书籍及建议的更多相关文章

  1. 2019年Web前端入门的自学路线

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文.本文内容不定期更新. 我前几天写过一篇文章:<裸辞两个月,海投一个月 ...

  2. 《Web编程入门经典》

    在我还不知道网页的基础结构的时候,我找过很多本介绍Web基础的书籍,其中这本<Web编程入门经典>,我认为是最好的. 这本书内容很全面.逻辑很严谨.结构很清晰.语言文字浅显易懂. 看这本书 ...

  3. WEB安全入门

    WEB安全入门 信息安全基础 信息安全目标 真实性:对信息的来源进行判断,能对伪造来源的信息予以鉴别, 就是身份认证. 保密性:保证机密信息不被窃听,盗取,或窃听者不能了解信息的真实含义. 完整性:保 ...

  4. 自学 Python 3 最好的 入门 书籍 推荐(附 免费 在线阅读 下载链接)

    请大家根据自己的实际情况对号入座,挑选适合自己的 Python 入门书籍: 完全没有任何编程基础:01 号书 少量编程基础,不求全,只希望能以最快的速度入门:02 号书 少量编程基础,有一定的英文阅读 ...

  5. day04 Java Web 开发入门

    day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...

  6. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识

    JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...

  7. JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC

    接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...

  8. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  9. 教程:Visual Studio 中的 Django Web 框架入门

    教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...

随机推荐

  1. 使用PreparedStatement接口实现增删改操作

    直接上下代码: package com.learn.jdbc.chap04.sec02; import java.sql.Connection; import java.sql.PreparedSta ...

  2. 最长上升子序列(LIS)

    最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS.排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了. 假设存在一个序列d[1..9] = ...

  3. vmware 仅主机模式 ip配置

    首先关闭防火墙 主机(宿主机器 win7) 虚拟机(xp) 3..重要提示:  如果ping不通首先考虑防火墙的问题!!! vmware配置: nat模式下玩耍: 1. 配置nat的虚拟网卡:  2. ...

  4. express源码学习

    终于腾出手来学习express.express在node.js中一株独秀.好像任何一种有主导的托管平台的语言,都出现这现象--马太效应.express是社区的共同孩子,里面聚集上社区最好的常用模块.从 ...

  5. System.Security.Cryptography.CryptographicException: 出现了内部错误。

    引用:http://www.cnblogs.com/ithome8/p/5189926.html 我总结了一下出现证书无法加载的原因有以下三个 1.证书密码不正确,微信证书密码就是商户号 解决办法:请 ...

  6. Physics Material

    [Physics Material] 1. The Physics Material is used to adjust friction and bouncing effects of collid ...

  7. sql 在存储过程中使用事务(转)

    本来想自己写一下,后来发现这个写的比我理解的要好,所以直接拽过来了,链接地址:https://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737 ...

  8. win7安装linux双系统

    整体流程大概就是下载启动盘制作工具以及linux镜像,这些步骤网上很多,我就不再重复了 这里以centos举例说几个我踩到的坑吧 1.选择开始安装后提示 Warning: /dev/root does ...

  9. cocos2d-x 在vs2010下的搭建(win7系统)

    1从官网下载cocos2d-x2.1.3的源码地址如下: http://cocos2d-x.org/ 2.解压下载的软件包我们会发现红框中vs2010的项目文件双击打开它 3.打开后我们要生成一些wi ...

  10. struts2 与 spring 整合

    1. 首先把所有jar包导入工程 2.在struts2的核心配置文件(在src文件目录下)中添加如下配置: <!-- 将Struts的对象交给Spring管理 所以需要导入Spring和Stru ...