【网络安全】常见的web攻击

1、SQL注入攻击

定义:

攻击者在HTTP请求中注入恶意的SQL代码,当服务器利用参数构建SQL语句的时候,恶意的SQL代码被一起构建,并在数据库中执行。

示例:

用户登录: 输入用户名xx, 密码 'or '1' = ' 1,如果此时使用参数构建的方式,就会出现

select * from user where name = "xx" and password = '' or '1' = '1' ,这样不管输入的用户名和密码是什么内容,查询出来的用户列表都不会为空。

预防:

> web方面

有效性校验

限制输入字符串长度

> 服务器方面

有效性校验【为什么服务器端还要做有效性校验,第一准则,外部的都是不可信的,防止攻击者绕过WEB请求】

不用拼接的SQL字符串

过滤SQL需要的参数中的特殊字符

使用预编译的preparestatement

2、XSS攻击

定义:

跨站点脚本攻击,攻击者通篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作的一种方式。

预防:

前端,服务端同时对字符串输入长度限制

前端,服务端同时对HTML进行转义处理,将其中的<,>等特殊字符进行转义编码。

防xss的核心是必须对输入的数据进行过滤处理。

3、CSRF攻击

定义:

跨站点请求伪造:攻击者通过跨站请求,以合法的用户身份进行非法操作,可以这么理解,攻击者利用你的身份或你的名义向第三方发送恶意请求。CSRF能做到的事情包括利用你的身份发邮件,发短信甚至盗取账号信息,交易转账等。

预防:

token机制:在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为是csrf攻击而拒绝该请求。

验证码:通常情况下,验证码能够很好的遏制CSRF攻击,但是很多情况下,处于用户体验,验证码只是一种辅助手段,而不是主要的解决方案。

referer:在HTTP Header中有个字段referer,他记录http请求的来源地址。如果refer是其他网站的话。则可能是CSRF攻击,从而拒绝该请求。但是有些情况下,服务器并非都能取到referer。

1)验证请求来源地址。

2)关键操作添加验证码。

3)在请求地址中添加token并验证。

4、文件上传漏洞

定义:

指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。许多第三方框架、服务,都曾经被爆出文件上传漏洞,比如很早之前的 Struts2,以及富文本编辑器等等,可被攻击者上传恶意代码,有可能服务端就被人黑了。

预防:

文件上传的目录设置为不可执行。

判断文件类型。在判断文件类型的时候,可以结合使用 MIME Type,后缀检查等方式。因为对于上传文件,不能简单地通过后缀名称来判断文件的类型,因为攻击者可以将可执行文件的后缀名称改为图片或其他后缀类型,诱导用户执行。

对上传的文件类型进行白名单校验,只允许上传可靠类型。

上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加攻击成本,同时向 shell.php.rar.ara 这种文件,因为重命名而无法成功实施攻击。

限制上传文件的大小。

单独设置文件服务器的域名

5、DDOS攻击

定义:

客户端向服务端发送请求链接数据包,服务端向客户端发送确认数据包,客户端不向服务端发送确认数据包,服务器一直等待来自客户端的确认,没有彻底根治的办法,除非不使用 TCP
预防:

限制同时打开 SYN 半链接的数目

缩短 SYN 半链接的 Time out时间

关闭不必要的服务

网络安全学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

需要网络安全学习路线和视频教程的可以在评论区留言哦~

最后
  • 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!
    给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做"正向"的、结合"业务"与"数据"、"自动化"的"体系、建设",才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

相关推荐
❆VE❆15 分钟前
vue3: directive自定义指令防止重复点击
前端·javascript·vue.js·自定义指令·directive
布兰妮甜21 分钟前
Fetch API 与 XMLHttpRequest:深入剖析异步请求的利器
前端·javascript·xmlhttprequest·fetch api
又逢乱世1 小时前
OpenSSL 生成非对称密钥对
安全
巴巴博一1 小时前
vue-i18n国际化插件安装教程(Vue3篇)
前端·javascript·vue.js·typescript
Merlyn102 小时前
npm : 无法加载文件 E:\ProgramFiles\Nodejs\npm.ps1,因为在此系统上禁止运行脚本。
前端·npm·node.js
一个打工仔的笔记2 小时前
npm i 失败权限问题
前端·npm·node.js
heroboyluck2 小时前
rust 前端npm依赖工具rsup升级日志
前端·rust·npm
MaximusCoder2 小时前
(论文)使ConvNeXt模型适应语音数据集上的音频分类
人工智能·经验分享·安全·分类·音视频
咔咔库奇2 小时前
【react】进阶教程02
前端·react.js·前端框架