web网络安全

news2025/1/10 11:26:37

在学习网络安全之前,必须要先知道一个组织——OWASP。 OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。我们基于该组织公布的技术文档来学习相关网络攻击原理和预防措施,web安全的核心是——永远不要相信用户传过来的数据:

常见的 web 攻击方式有如下这些:

1. google hack

2. 网页爬虫

3. 暴力猜解

4. web 漏洞扫描

5. 错误信息利用

6. 利用服务器配置漏洞

7. 文件上传下载

8. 构造恶意输入(sql注入攻击、命令注入攻击、跨站脚本攻击等)

9. http 协议攻击

10. 拒绝服务攻击

11. 其他攻击利用(web service、flash 、ajax 等)

1. sql 注入攻击

1.1 简单注入

1. 数值型注入方式:例如我们后台有这样一个查询sql: 

SELECT * from user_info WHERE id= 

那么我们可以通过修改前端的值位:-1 or 1=1 来实现查询所有的数据,其中-1表示永远不可能存在的数据。

2. 字符串注入的方式:通过注释字符实现绕道

由于# / --通常标识注释,因此可以在输入用户名的时候加上’#,然后输入任意的密码,这样后面查询密码的sql 被注释掉,直接绕过密码校验实现登录;

因此要保证前后台输入框格式的绝对校验。另外严格禁止sql拼接,必须使用占位符

2. XSS攻击

跨站脚本攻击,是代码注入的一种,它允许恶意用户将代码注入到网页,其他用户在浏览网页时就会受到影响;将用户输入的数据当作了html语句放到了页面上执行

2.1 反射性XSS攻击

定义 —— 页面发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。

demo 如下:

当访问项目时候,加上 xss 的参数就会有如下页面展示:

我们将 xss 的值改动一下:会弹出如下的界面框,这种攻击的前提是:必须将地址中的参数在页面解析,如果不进行解析的话,那么这种攻击方式也就毫无意义。

这种攻击又包含三种方式:

  1. 主动攻击:上述的加img标签就是主动攻击。

  2. 引诱攻击:如果参数值为:<p onclick="alert('点我了')">点我</p>,这种引诱用户去点击的攻击,则为引诱攻击。

  3. iframe方式:如果参数值为:<iframe src="//baidu.com/t.html"></iframe>,那么将会直接将某个网站渲染到该页面。

2.1 存储性XSS攻击

1. 假设这是一个交流论坛,其中一个页面中有留言的文本输入框,我们将具有攻击性的脚本写到文本框中,然后提交到服务端。(该脚本的含义表示,获取客户端的cookie,并发送到指定地址)。

2. 后台服务已经将我们提交的数据存储到数据库中。当其他用户在自己计算机中登陆这个网站的时候,服务端会将我们之前写入具有攻击性的XSS脚本留言渲染到HTML页面,从而将该用户页面中的cookie信息发送到我们预留的网站中。

3.接下来,我们就可以用这个人的cookie信息在该网站中“替代”他进行一系列的操作;一个简单的存储型XSS攻击(cookie欺骗)就完成。

针对js获取cookie的解决方案:在cookie中设置了HttpOnly属性为true,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击

2.3 XSS攻击的防御措施

1. 转义html:  常用的模板引擎,如 doT.js、ejs、FreeMarker 等,对于 HTML 转义通常只有一个规则,就是把 & < > " ' / 这几个字符转义掉,确实能起到一定的 XSS 防护作用

2. 过滤:在使用 .innerHTML.outerHTMLdocument.write() 时要特别小心,不要把不可信的数据作为 HTML 插到页面上,而应尽量使用 .textContent.setAttribute() 等。如果用 Vue或者React技术栈,并且不使用 v-html/dangerouslySetInnerHTML 功能,就在前端 render 阶段避免 innerHTMLouterHTML 的 XSS 隐患。DOM 中的内联事件监听器,如 locationonclickonerroronloadonmouseover 等,<a> 标签的 href 属性,JavaScript 的 eval()setTimeout()setInterval() 等,都能把字符串作为代码运行。如果不可信的数据拼接到字符串中传递给这些 API,很容易产生安全隐患,请务必避免。

3.  校正:避免直接对HMTL 转义,我们需要更完善的转移策略

我下面也给大家整理了一些网络安全的资料,大家不想一个一个去找的话,可以参考一下这些资料哈

视频教程

SRC&黑客技术文档

黑客工具合集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/515172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OLED显示实验

实验内容 点亮OLED&#xff0c;并实现ASCII 字符的显示。 OLED简介 OLED&#xff0c;即有机发光二极管&#xff08;Organic Light-Emitting Diode&#xff09;&#xff0c;又称为有机电激光显示&#xff08;Organic Electroluminesence Display&#xff0c; OELD&#xff09…

Java10

Java10 &#xff08;一&#xff09;、配置文件&#xff08;二&#xff09;、多线程2.1 并发和并行2.2 多线程的实现方式2.3 常见成员方法2.3.1 线程的优先级2.3.2 守护线程&#xff08;备胎线程&#xff09;2.3.3 礼让线程和插入线程 2.4 线程生命周期2.4 线程安全问题2.5 锁2.…

Android Input kl文件实现键值映射

Android Keyevent定义在KeyEvent.java 截图对应 public static final int KEYCODE_SYSRQ 120; adb shell input keyevent SYSRQLinux Scancode定义在input-event-codes.h #define KEY_SCALE 120可以看到是不对应的 本来想通过指纹双击实现截图功能&#xff0c;发现上报scanco…

浅谈性能测试策略的理解

面对日益复杂的业务场景和不同的系统架构&#xff0c;前期的需求分析和准备工作&#xff0c;需要耗费很多的时间。而不同的测试策略&#xff0c;也对我们的测试结果是否符合预期目标至关重要。 这篇博客&#xff0c;聊聊我个人对常见的性能测试策略的理解&#xff0c;以及它们…

tkinter+爬虫(re库,tkinter库详解)

1.安装和认识本次实验所需要的库 re库&#xff08;正则库&#xff0c;本次实验用于匹配文本&#xff09; tkinter库 &#xff08;GUI库&#xff0c;用于制作可视化界面&#xff09; requests库 &#xff08;网络请求库&#xff0c;用于制作爬虫&#xff09; re和tkinter均为…

node 脚本调试

Node 脚本调试 node --inspect-brk index.js 执行以上命令&#xff0c;然后打开浏览器的控制台会发现有个node的logo 点击这个图标就可以开始调试代码 调试webpack 只需要找到webpack的执行入口&#xff0c;然后执行以下命令&#xff0c;只要是node脚本都可以进行调试。 n…

Shell脚本完成web服务器的建设

一&#xff0c;要求 1&#xff0c;安装httpd软件 2&#xff0c;定义防火墙规则 3&#xff0c;设置selinux为强制模式 4&#xff0c;web服务器的端口为8080 5&#xff0c;web服务器的内容目录为 /www/8080 6&#xff0c;所有操作开机有效 7&#xff0c;所有操作必须进行…

2022年上半年软件设计师下午试题

【试题四】&#xff08;共15分&#xff09; 阅读下列说明和C代码&#xff0c;回答问题1至问题3&#xff0c;将解答写在答题纸的对应栏内。 工程计算中经常要完成多个矩阵相乘的计算任务&#xff0c;对矩阵相乘进行以下说明。 (1)两个矩阵相乘要求第一个矩阵的列数等于第二个…

适合广告行业使用的企业网盘工具

Zoho Workdrive 是一款非常适合广告行业使用的企业网盘工具&#xff0c;它可以帮助广告行业进行高效、有序的项目管理。作为一名广告行业从业者&#xff0c;你是否遇到过以下问题&#xff1f; 2.文件无法有效共享 团队合作效率低下客户需求无法及时满足 这些问题都会严重影响项…

【Linux】Redis高可用概述2(Redis 发布订阅、Redis 事务、Redis主从复制)

一、Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式&#xff1a;发送者(pub)发送消息&#xff0c;订阅者(sub)接收消息。 发送者可以向多个订阅者发送消息&#xff0c;订阅者可以收到多个发送者送来的消息&#xff0c;也就是是说发送者和订阅者是多对多的关系 实例…

MATLAB中资源管理器无法安装资源解决方法详细教程

摘要&#xff1a;介绍使用MATLAB获取附加功能时出现“续订软件维护服务”的界面问题解决方案&#xff0c;即使用预先从官网下载的安装包文件&#xff0c;直接运行离线安装文件后会自动弹出附加功能管理界面&#xff0c;这时可以安装该附加工具&#xff0c;详细过程见以下介绍。…

ProtoBuf原理

一、文章 https://zhuanlan.zhihu.com/p/404782892 二、测试 1.test.proto syntax "proto3";package proto; option go_package "./;proto";message Msg{uint32 age1 1;sint32 age2 2;string name 3;bytes data 4; }2.main.go package mainimpor…

【滤波】多元卡尔曼滤波器

本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第6章节06-Multivariate-Kalman-Filters&#xff08;多元卡尔曼滤波器&#xff09;。 %matplotlib inline#format the book import book_format book_format.set_style()简介 我们现在准备研究和实现完整的、多…

财报解读:Q2业绩指引未达预期,狂奔的爱彼迎要减速了?

全球民宿龙头爱彼迎Airbnb迎来了一个强劲的开端。 美东时间5月9日盘后&#xff0c;爱彼迎发布了2023年第一季度财报。财报显示&#xff0c;爱彼迎一季度营收、净利润、总预订金额都获得了不同程度增长&#xff0c;超出市场预期。美中不足的是&#xff0c;公司预计二季度营收下…

分组卷积和深度可分离卷积

文章目录 一、常规卷积操作二、分组卷积三、深度可分离卷积 一、常规卷积操作 在图中&#xff0c;输入的特征图大小为 H * W * 4 卷积核个数为 2 个&#xff0c;每个卷积核的大小为 K * K * 4 输出的特征图大小为 H’ * W’ * 2 二、分组卷积 &#xff01;&#xff01;&#…

Java 内存模型

JVM 内部使用的 Java 内存模型&#xff0c; 在逻辑上将内存划分为 线程栈&#xff08;thread stacks&#xff09;和堆内存 &#xff08;heap&#xff09;两个部分。 如下图所示&#xff1a; JVM 中&#xff0c;每个正在运行的线程&#xff0c;都有自己的线程栈。 线程栈包含了当…

多表查询~

文章目录 多表查询内连接外连接子查询单行单列多行单列多行多列 多表查询 笛卡尔积:有A,B两个集合 取A,B所有的组合情况 内连接 要想查询某一章表的某个字段&#xff0c;可用 表名.字段名表示 也可以给表起别名 隐式内连接INNER可省略 外连接 外连接分左外连接和右外连接 子查…

堆排序创建

堆排序创建 一、介绍1、什么是堆2、大项堆&#xff08;排序前&#xff09;3、小项堆&#xff08;排序前&#xff09;4、排序思想 二、大项堆排序案例1、流程2、讲解 三、总结 一、介绍 1、什么是堆 堆是一种叫做完全二叉树的数据结构&#xff0c;可以分为大项堆&#xff0c;小…

计算机知识 小tips

目录 什么是R语言&#xff1f; 电脑长期不关机会产生什么影响&#xff1f; nlp是什么&#xff1f; cv是什么&#xff1f; 什么是R语言&#xff1f; R语言是一种用于数据分析和统计建模的编程语言和环境。它由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman于1995年开发而…

【C语言督学训练营 第十三天】栈与循环队列的顺序实现与链式实现

文章目录 前言栈--思想栈--代码实战队列--思想队列--代码实战真题实战&#xff01; 前言 栈与队列是数据结构中最常见的数据结构之一&#xff0c;因其特性往往可以将问题简单化&#xff0c;在使用栈与队列时要牢记&#xff1a;栈&#xff1a;先进后出&#xff0c;队列&#xf…