1、SQL注入
描述:Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了原有SQL语句逻辑,攻击者可以利用这个漏洞执行任意SQL语句。
修复方法:
代码层最佳防御方案:使用预编译sql语句查询和绑定变量。
使用预编译语句,使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。
对进入数据库的特殊字符进行转义处理或编码转换。
确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
网站每个数据层的编码同意,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。过滤危险字符。
2、XSS
描述:web程序代码中对用户提交的参数未做过滤或过滤不严,导致参数中的特殊字符破坏了HTML页面的原有逻辑,攻击者可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登录,然后获取其登录凭证等。
XSS攻击对web服务器本身虽无直接危害,但是它借助网站进行传播,对网站用户进行攻击,窃取网站用户账号身份信息等,从而也会对网站产生较严重的威胁。XSS攻击可以导致这些危害:钓鱼欺骗、网站挂马、身份盗用、盗取网站用户信息、垃圾信息发送、劫持用户web行为、XSS蠕虫等。
修复建议:
XSS漏洞本质上是一种HTML注入,也就是将HTML代码注入到网页中,那么其防御的根本就是在将用户提交的代码显示到页面上时做好一系列的过滤与转义。
过滤输入的数据,这里的输入不仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
不仅验证数据的类型,还要验证其格式、长度、范围和内容。
不仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
对输出到页面的数据进行相应的编码转换,如HTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点也要进行检查。
3、CSRF
描述:CSRF是跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操作。通常由于服务端没有请求做严格过滤引起的。CSRF会造成密码重置,用户伪造等问题,可能引发严重后果。绝大多数网站是通过cookie等方式辨识用户身份,再予授权的。所以要伪造用户的正常操作,最好的方法是通过XSS或链接欺骗等途径,让用户在本机发起用户所不知道的请求。CSRF攻击会令用户在不知情的情况下攻击自己已经登录的系统。
修复建议:
验证请求的Referer是否来自本网站,但可被绕过。
在请求中加入不可伪造的token,并在服务端验证token是否一致或正确,不正确则丢弃拒绝服务。
4、SSRF
漏洞描述:通俗来说就是我们可以伪造服务器端发起的请求,从而获取客户端所不能得到的数据。SRRF漏洞形成的原因主要是服务器所提供的接口中包含了所要请求的内容的URL参数,并且对客户端所传输过来的URL参数进行过滤。
修复建议:
禁用不需要的协议,只允许HTTP和HTTPS请求
白名单的方式限制访问的目标地址,禁止对内网发起请求
过滤或屏蔽请求返回的详细信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一类型的文件,那么把返回结果展示给用户之前先验证返回的信息是否符合标准
验证请求的文件格式
禁止跳转
限制请求的端口为http常用的端口,比如80、443、8080、8000等
统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
5、任意命令/代码执行
描述:命令或代码执行漏洞是指代码未对用户可控参数做过滤,导致直接带入执行命令和代码,通过漏洞执行恶意构造的语句,执行任意命令或代码。攻击者可在服务器上执行任意命令,读写文件操作等,危害巨大。
修复建议
严格过滤用户输入的数据,禁止执行非语气系统命令
减少或不使用代码或命令执行函数
客户端提交的变量在放入函数钱进行检测
减少或不适用危险函数
6、任意文件上传
描述:文件上传漏洞通常由于代码中对文件上传功能所上传的文件过滤不严或web服务器相关解析漏洞未修复而造成的,如果文件上传功能代码没有严格限制和验证用户上传的文件后缀、类型等,攻击者可通过文件上传点上传任意文件,包括网站后门文件控制整个网站。
修复建议:
对上传文件类型进行验证,除在前端验证外在后端也进行验证。后端可以进行扩展名检测、重命名文件,MIME类型检测以及限制上传文件的大小等限制来防御,或是将上传的文件其他文件存储服务器中。
严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录执行权限,防止木马执行。
对上传文件格式进行严格校验,防止上传恶意脚本文件
严格限制上传的文件路径
文件扩展名服务端白名单校验
文件内容服务端校验
上传文件重命名
隐藏上传文件路径
7、文件包含
漏洞描述:指程序在处理包含文件的时候没有严格控制。攻击者可以利用这个漏洞先把上传的文件、网站日志文件等作为代码执行或直接显示,或者包含远程服务器上的恶意文件,进而获得服务器权限
修复建议:
严格检查变量是否已经初始化
对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格检查。
严格检查问价包含函数中的参数是否外界可控。
8、弱口令
漏洞描述:网站的用户账号有弱口令,攻击者可以通过弱口令直接进入网站,然后进行下一步攻击。用弱口令登录网站管理后台,则可以执行任意管理员的操作。
修复建议:
强制用户修改默认口令,或者使用用户自定义初始密码策略
完善密码策略
增加人机验证机制,限制IP访问次数
9、暴力破解
漏洞描述:因为登录页面没有人机验证机制,没有验证码、有验证码但可以重复利用以及无登录错误次数限制,导致攻击者可通过暴力破解获取用户登录账号和密码。
如果用户登录次数超过设置的阈值,则锁定账号
如果IP登录次数超过设置的阈值,则锁定IP
增加人机验证机制
验证码必须在服务器端进行校验,客户端的校验都是不安全的
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
log.csdnimg.cn/b07abbfab1fd4edc800d7db3eabb956e.png)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-fo5EMdJx-1712928933986)]