安全DNS,状态码,编码笔记整理
一 DNS
DNS(Domain Name System)是互联网中用于将域名转换为IP地址的系统。
DNS的主要功能包括以下几个方面:
- 域名解析:DNS最主要的功能是将用户输入的域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,操作系统会向DNS服务器发送解析请求,DNS服务器根据该域名查询自身的记录来返回对应的IP地址。
-IP地址反查:DNS也支持将IP地址反查为对应的域名。该功能对于进行安全审计和网络监控非常有用。 - 负载均衡:DNS还可以用于实现负载均衡。通过配置多个具有相同域名但不同IP地址的服务器,DNS可以根据一定的策略(如轮询、随机)将请求分发到不同的服务器上,从而实现负载均衡以提高性能和可靠性。
- 邮件服务器定位:DNS在电子邮件系统中也起着重要的作用。通过MX记录,DNS可以指定用于接收特定域名邮件的邮件服务器。
- 安全性增强:DNS也可用于增强网络安全性。例如,DNS可以实施域名层面的安全策略,如通过DNSSEC(DNS Security Extensions)对域名解析结果进行数字签名,防止域名劫持和欺骗。
DNS主要工作流程
-
发起域名解析请求:当用户在浏览器中输入一个域名时,操作系统会发送一个域名解析请求到本地DNS服务器(通常由ISP提供)。
-
本地DNS服务器查询缓存:本地DNS服务器首先会查询自己的缓存,看是否已经解析过该域名。如果有缓存记录且未过期,那么会直接返回已解析的IP地址。
-
递归查询与迭代查询:如果本地DNS服务器缓存中没有找到对应的解析记录,它就会根据自己的配置进行递归查询或迭代查询。
递归查询:本地DNS服务器会向根DNS服务器发送解析请求,根DNS服务器负责管理顶级域名(如.com、.org)的IP地址。根DNS服务器会返回下一级DNS服务器的IP地址。 迭代查询:本地DNS服务器根据根DNS服务器返回的IP地址,向下一级的DNS服务器发起查询请求,然后继续重复这个过程,直到找到负责该域名的最终DNS服务器。
- 最终DNS服务器解析与缓存:最终DNS服务器收到查询请求后,会查询自己的记录,如果有该域名的解析记录,就返回给本地DNS服务器。本地DNS服务器将得到的IP地址返回给操作系统,并缓存这个解析结果。
- 返回解析结果:最终,本地DNS服务器将解析得到的IP地址返回给用户的计算机操作系统,操作系统将使用这个IP地址来建立网络连接,并完成对该域名的访问。
二 HTTP状态码
HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本的协议。当客户端与服务器之间进行通信时,服务器会返回一个HTTP状态码,用于表示请求的处理结果。以下是一些常见的HTTP状态码及其含义:
1xx(信息性状态码):请求已接收,继续处理。
- 100 Continue:客户端应继续发送请求。
- 101 Switching Protocols:服务器将切换到不同的协议,如HTTP/1.1。
2xx(成功状态码):请求已成功被服务器接收、理解和处理。
- 200 OK:请求成功,服务器返回所请求的数据。
- 201 Created:请求成功,并且服务器创建了新的资源。
- 204 No Content:请求成功,但服务器没有返回内容。
3xx(重定向状态码):需要进一步操作以完成请求。
- 301 Moved Permanently:请求的资源被永久移动到新位置。
- 302 Found:请求的资源被暂时移动到新位置。
- 304 Not Modified:资源未修改,使用缓存的版本。
4xx(客户端错误状态码):请求包含错误或无法完成。
- 400 Bad Request:请求的语法有误,服务器无法理解。
- 401 Unauthorized:请求需要用户身份验证。
- 404 Not Found:服务器无法找到请求的资源。
5xx(服务器错误状态码):服务器在处理请求时发生错误。
- 500 Internal Server Error:服务器内部错误。
- 503 Service Unavailable:服务器当前无法处理请求,通常是因为过载或维护。
三 HTML实体编码,urlcode
html实体编码
HTML实体编码(HTML Entity Encoding)是一种在HTML文档中表示特殊字符的方法。由于HTML使用一些特殊字符作为标签、属性或其他用途,为了在HTML中正确显示这些字符,需要使用实体编码来表示它们。
HTML实体编码使用实体名称或实体编号来替代特殊字符。
实体的写法是&name;
,其中的name
是字符的名字。下面是其中一些特殊字符,及其对应的实体。
<
:<
>
:>
"
:"
'
:'
&
:&
©
:©
#
:#
§
:§
¥
:¥
$
:$
£
:£
¢
:¢
%
:%
*
:$ast;
@
:@
^
:^
±
:±
- 空格:
实体编号:
URLCODE
URL编码(也称为百分号编码或URL转义)是一种将URL中的特殊字符转换为特定格式的编码方式。这是因为URL只允许使用一部分ASCII字符,并且对于非ASCII字符和特殊字符,需要使用特定的编码方式来表示。
URL 的各个组成部分,只能使用以下这些字符。
-
26个英语字母(包括大写和小写)
-
10个阿拉伯数字
-
连词号(
-
) -
句点(
.
) -
下划线(
_
)绕过
URL 字符转义的方法是,在这些字符的十六进制 ASCII 码前面加上百分号(%
)。下面是这18个字符及其转义形式。
!
:%21#
:%23$
:%24&
:%26'
:%27(
:%28)
:%29*
:%2A+
:%2B,
:%2C/
:%2F:
:%3A;
:%3B=
:%3D?
:%3F@
:%40[
:%5B]
:%5D
四 alter弹窗
<?php
header('X-XSS-Protection: 0');
$xss = isset($_GET['xss'])? $_GET['xss'] : '';
$xss = str_replace(array("(", ")", "&", "\\", "<", ">", "'"), '', $xss);
echo "<img src=\"{$xss}\">";
?>
因为已经过滤了其中的(),&,\,<>,‘’。所以无法正常弹出alert,用aaa“打开一个双引号,在其后输入onerror。因为url会解析%28%29成()。%28%29会被正则过滤掉,%2528%2529会被转移成%28%29,进入程序,但无法被解析成()并执行所以用location=“javascript:
”先将“”闭合,之后输入%25281%2529,会被location引用成变量。javascript伪协议变量内就能正常解析符号,为(),弹出alert弹窗
相关文章:

安全DNS,状态码,编码笔记整理
一 DNS DNS(Domain Name System)是互联网中用于将域名转换为IP地址的系统。 DNS的主要功能包括以下几个方面: 域名解析:DNS最主要的功能是将用户输入的域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,操作…...

【业务功能篇53】Springboot 数据封装对象
Entity、VO、DTO解释 1)Entity:实体,与数据库的每一行数据打交道的,它的属性对应数据库每个字段 class User{ private Long idCard; private String name; private Date birthday; ...... } 对应数据库的id,name&…...

将Spring Session存储到Redis中实现持久化
文章目录 Session持久化1. 添加依赖2. 配置redis连接信息3. 存储和读取session从Redis Session持久化 1. 添加依赖 在项目中添加session依赖和redis依赖,如下所示: <dependency><groupId>org.springframework.boot</groupId><art…...
Git工作中常用命令
模拟一个git完整命令流程 有一个名为 example.txt 的文本文件 Hello, this is some text.1、做一些修改并查看文件的差异: # 修改 example.txt 文件 echo "Hello, this is some updated text." > example.txt查看文件的差异 git diffgit diff 命令…...

【电路效应】信号处理和通信系统模型中的模拟电路效应研究(SimulinkMatlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、Simulink仿真实现 💥1 概述 在信号处理和通信系统模型中,模拟电路效应研究是指考虑到实际电路的特性对信号进行建模和分析的过程。模拟电路效应…...

Spring 的元注解
一、元注解介绍 1.1.源码引入 1.2.元注解介绍 从上面的图片可知,Spring 有四个【负责注解其他注解】的元注解,分别是: Target:标识该注解可以用于标注哪些程序元素,比如类、方法、字段等。 Retention:标…...
【前缀和】238. 除自身以外数组的乘积
238. 除自身以外数组的乘积 解题思路 前缀与后缀的思路对于给定索引i,将它左边的所有数字乘积乘以右边所有数字的乘积初始化两个数组L R计算L[i] L[i - 1] * nums[i - 1] 也就是左侧所有数字的乘积计算R[i] R[i 1] * nums[i 1] 也就是右侧所有数字的成绩计算L…...

【Java中间件】RocketMQ
RocketMQ 一、MQ概述 Message Queue,是一种提供消息队列服务的中间件。提供了消息生产、存储、消费全过程API的软件系统。 MQ的作用 限流削峰:当用户发送超量请求时,将请求暂存,以便后期慢慢处理。如果不使用MQ暂存直接请求到…...

Megatron-LM、NVIDIA NeMo、MegaMolBART 、model_optim_rng.pt 文件是什么?
本文涉及以下几个概念,分别是: Megatron和Megatron-LM-v1.1.5-3D_parallelism NVIDIA NeMo Megatron和Megatron-LM-v1.1.5-3D_parallelism是什么? Megatron是由NVIDIA开发的一种用于训练大规模语言模型的开源框架。它旨在提供高效的分布式…...
2023年信息系统项目管理师如何报名?老司机告诉你
信息系统项目管理师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资…...
linux ubuntu系统 命令备忘
一、安装软件包的命令 1、验证安装包是否安装 dpkg -s <软件包名> 2、从软件源服务器获取最新的软件信息并缓存到本地 apt update 3、从本地仓库中对比系统中所有已安装的软件,如果有新版本的话则进行升级 apt upgrade 4、列出本地仓库中所有的软件包名…...

我的第一个flutter项目(Android Webview)
前言:flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目,内容是一个主界面,其中: 1.内容点击数字自增 2.跳转一个空页, 3.跳转一个WebView界面 其中涉及添加主键…...
微信机器人搭建详细教程
确保已安装Python和pip。 在D盘上创建名为wxbot的文件夹,并将你的Python机器人项目文件放在这个目录中。 在D盘的wxbot文件夹中打开命令行工具,并创建一个新的Python虚拟环境(可选): python -m venv venv激活虚拟环…...
opengauss安装
opengauss安装 系统环境 Redhat版本:redhat7.6 虚拟机ip:192.168.5.144 Gauss版本:openGauss-5.0.0-CentOS-64bit-all.tar.gz 企业版 一.准备软硬件环境 1.1 安装依赖包 yum -y install bzip2 python3 libaio-devel flex bis…...

什么是SVM算法?硬间隔和软间隔的分类问题
SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。 SVM能够执行线性或⾮线性分类、回归,甚至是异常值检测任务。它是机器学习领域最受欢迎的模型之一。SVM特别适用于中小型复杂数据集的分类。…...

Normalization(BN and LN) in NN
Batch Normalization 称为批标准化。批是指一批数据,通常为 mini-batch;标准化是处理后的数据服从 N ( 0 , 1 ) N(0,1) N(0,1) 的正态分布。在训练过程中,数据需要经过多层的网络,如果数据在前向传播的过程中,尺度发…...

opencv-22 图像几何变换01-缩放-cv2.resize()(图像增强,图像变形,图像拼接)
什么是几何变换? 几何变换是计算机图形学中的一种图像处理技术,用于对图像进行空间上的变换,而不改变图像的内容。这些变换可以通过对图像中的像素位置进行调整来实现。 常见的几何变换包括: 平移(Translation&#x…...

python机器学习(五)逻辑回归、决策边界、代价函数、梯度下降法实现线性和非线性逻辑回归
线性回归所解决的问题是把数据集的特征传入到模型中,预测一个值使得误差最小,预测值无限接近于真实值。比如把房子的其他特征传入到模型中,预测出房价, 房价是一系列连续的数值,线性回归解决的是有监督的学习。有很多场…...
聊聊Linq中.AsEnumerable(), AsQueryable() ,.ToList(),的区别和用法
聊聊Linq中.AsEnumerable(), AsQueryable() ,.ToList(),的区别和用法 当使用LINQ查询数据时,我们常常会面临选择使用.AsEnumerable(), .AsQueryable(), 和 .ToList()方法的情况。这些方法在使用时有不同的效果和影响,需要根据具体场景来选择合适的方法。…...

【机器学习】机器学习中的“本体”概念
一、说明 在机器学习中,本体越来越多地用于提供基于相似性分析和场景知识的 ML 模型。 在传统的基于标签的定义中,对象往往是孤立的,可扩展性差,存在重复的可能性,对象之间的关系无法体现。在基于本体的定义中…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...