wireshark入门
一、 过滤器操作过滤器是Wireshark的核心功能,也是我们平时使用最多的一个功能。 Wireshark提供了两个过滤器:抓包过滤器 和 显示过滤器。两个过滤器的过滤思路不同。 抓包过滤器:重点在动作,需要的包我才抓,不需要的我就不抓。 显示过滤器:重点在数据的展示,包已经抓了,只是不显示出来。 1. 抓包过滤器抓包过滤器在抓包前使用,它的过滤有一个基本的语法格式:BPF语法格式。 1)BPF语法BPF(全称 Berkeley Packet Filter),中文叫伯克利封包过滤器,它有四个核心元素:类型、方向、协议 和 逻辑运算符。 类型Type:主机(host)、网段(net)、端口(port) 方向Dir:源地址(src)、目标地址(dst) 协议Proto:各种网络协议,比如:tcp、udp、http 逻辑运算符:与( && )、或( || )、非( !) 四个元素可以自由组合,比如: src host 192.168.31.1:抓取源IP为 192.168.31.1 的数据包 tcp || udp:抓取 TCP 或者 UDP...
正向代理VS反向代理
🛰️ 正向代理 vs 反向代理(通俗理解)📌 概念对比表 项目 正向代理 反向代理 谁发起使用? 客户端(用户自己配置) 服务端(自动代理到后端) 被隐藏的是谁? 客户端 后端服务器 应用场景 科学上网、绕过墙 负载均衡、隐藏真实后端 示例 VPN、HTTP代理 Nginx、Apache 反向代理 用户访问的是什么 代理服务器 代理服务器 代理服务器转发给 目标网站 实际后端服务(如 Flask) 🎯 正向代理(Forward Proxy) 帮你访问你访问不到的网站 sequenceDiagram participant 用户 participant 代理服务器 participant 谷歌 用户->>代理服务器: 我要访问 Google 代理服务器->>谷歌: 用户请求(代发) 谷歌-->>代理服务器: 响应内容 代理服务器-->>用户: 返回数据 🔍 特点 客户端配置代理 代理“伪装”你去访问外部 被服务端看到的是“代理”,不是你 🛠...
开源许可证详解
下面我来用通俗易懂的方式为你详细介绍主流的开源许可证,包括它们分别允许你干什么(✅ 权利)和限制你干什么(⚠️ 义务/限制)。这对你未来使用或开源项目非常重要。 🧭 总览:开源许可证怎么选?不同的许可证,在“能不能闭源”、“要不要公开修改”、“能不能商用”这些点上差异最大。 许可证 商业可用 闭源可用 修改后是否必须开源 适合谁 MIT ✅ ✅ ❌ 不强制 开发者、初创 Apache 2.0 ✅ ✅ ❌ 不强制 企业、平台级 BSD 3-Clause ✅ ✅ ❌ 不强制 教学、研究 GPL v3 ✅ ❌ ✅ 强制 注重自由的开源社区 LGPL v3 ✅ ✅(限度) ✅ (库级别) 做库的人 MPL 2.0 ✅ ✅ ✅(文件级) 平衡自由和开源 🎯 1. MIT License(最宽松)✅ 权利: 可以免费使用、复制、修改、分发; 可以闭源使用(你修改了也不需要开源); 可以用于商业用途。 ⚠️ 义务: 保留原作者的许可证和版权声明; 没有担保,出错作者不负责。 ✅ 适合: 快速开发、创业、发库、个人项目。📌...
css:单位
CSS 中常见长度单位在 CSS 中,一般有两种用于长度和尺寸的单位:绝对单位和相对单位。 一、绝对长度单位px像素,或 px,是 CSS 中最常见的长度单位之一。在 CSS 中,1 像素被正式定义为 1/96 英寸。所有其他的绝对长度单位都是基于这个像素的定义。但是,在最初制定这一标准时,大多数显示器的分辨率为 1024×768,DPI(每英寸点数)为 96。 in: 英寸在 CSS 中,1 英寸大约是 96 个像素,或大约 2.54 厘米 二、相对长度单位em当与 font-size 属性一起使用时,em 继承其父元素的 font-size 大小 123456789101112131415.container { font-size: 16px;}.container p { font-size: 1em;}.container h2 { font-size: 3em;}.container h3 { font-size: 2em;} 在这个例子中,p 的 font-size...
带宽科普
🚰 一、什么是“上行带宽”和“下行带宽”?我们可以把带宽想象成水管的宽度,而“上行”和“下行”就是水的流动方向: 类型 意思 举个例子 下行带宽(下载) 别人把东西传给你,你接收 你打开网页、看视频、加载图片 上行带宽(上传) 你把东西传给别人 别人访问你的网站、你发文件、直播 🚩 在“你自己搭建的网站”里,上行带宽才是关键! 🧑💻 二、部署网站时,谁用“上行”?谁用“下行”? 行为 属于谁的“上行”? 属于谁的“下行”? 用户打开你的网站 你的服务器 → 用户 用户 ← 接收页面(下载) 你上传代码到服务器 你 → 服务器 服务器 ← 接收(下载) 用户上传图片给你网站 用户 → 服务器 服务器 ← 接收(上行) 所以,当你做一个网站时,用户在访问你的网站,等于你在“上传”内容给他们看,这靠的是你的 上行带宽! 📦 三、服务器买带宽,为什么要关注“上行带宽”?很多人买服务器时只看到“带宽 5 Mbps”,但要注意: 家用宽带(比如移动、联通)一般是“下行快,上行慢”,比如 100 Mbps 下载 / 10...
web逆向: md5
md5加密字符串一般长度为16或者32函数跳转,鼠标放上去,出现后点击HttpOnly含义生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险(如果浏览器支持)。这个意思就是说,如果某一个Cookie 选项被设置成 HttpOnly = true 的话,那此Cookie 只能通过服务器端修改,Js 是操作不了的,对于 document.cookie 来说是透明的。 acw_tc = /ktas/v0/report set_cookieObject(xx) 含义在JavaScript中,Object(d.a) 这种写法是一种显式类型转换(type coercion),它的作用是将 d.a 的值转换为一个对象(Object)。具体行为如下: 1. 如果 d.a 是原始值(primitive):比如字符串、数字、布尔值、null、undefined 等,Object() 会将其包装成对应的包装对象: 123Object("hello") // String...
flask 数据库查询监控
In debug mode Flask-SQLAlchemy will log all the SQL queries sentto the database. This information is available until the end of requestwhich makes it possible to easily ensure that the SQL generated is theone expected on errors or in unittesting. If you don’t want to enablethe DEBUG mode for your unittests you can also enable the queryrecording by setting the 'SQLALCHEMY_RECORD_QUERIES' config variableto True. This is automatically enabled if Flask is in testing mode. The value...
flask模板变量统一配置
在函数内部,使用 @app.context_processor 装饰器定义了一个名为 make_template_context 的函数。这个装饰器的作用是注册一个上下文处理器,使其返回的变量在所有模板中全局可用。参考代码如下: 12345678910111213def register_template_context(app): @app.context_processor def make_template_context(): admin = Admin.query.first() categories = Category.query.order_by(Category.name).all() links = Link.query.order_by(Link.name).all() if current_user.is_authenticated: unread_comments = Comment.query.filter_by(reviewed=False).count() ...
JS中的栈和堆是什么?优缺点?
理解 JavaScript 中的栈(stack)和堆(heap)是理解 JavaScript 内存管理的关键。栈和堆是两种不同的内存分配方式,用于存储数据和变量。在本文中,我将详细解释栈和堆的概念、优缺点,并提供示例代码片段来帮助读者更好地理解。 1. 栈(Stack)栈是一种线性数据结构,遵循先进后出(FILO)的原则。在计算机科学中,栈被用于存储函数调用、局部变量、函数参数以及程序执行的上下文。 1.1 栈的特点: 先进后出(FILO):最后压入栈的元素最先弹出。 有限大小:栈的大小是有限的,当栈空间耗尽时会发生栈溢出(stack overflow)。 快速访问:由于栈是一种简单的数据结构,访问和操作栈的速度非常快。 1.2 栈的优点:快速分配和释放内存:由于栈的数据结构特点,分配和释放栈内存的操作非常高效,不会出现内存碎片问题。 1.3 栈的缺点: 有限大小:栈的大小是有限的,当栈空间不够用时会发生栈溢出。 局部性:栈上存储的数据只能在局部作用域中访问,不适合存储大量的数据或长期保存的数据。 1.4 示例代码:123456789function add(a, b)...
事件冒泡
事件冒泡定义子元素触发事件时,所有的祖先元素都会触发相同的事件