安全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主要工作流程

  1. 发起域名解析请求:当用户在浏览器中输入一个域名时,操作系统会发送一个域名解析请求到本地DNS服务器(通常由ISP提供)。

  2. 本地DNS服务器查询缓存:本地DNS服务器首先会查询自己的缓存,看是否已经解析过该域名。如果有缓存记录且未过期,那么会直接返回已解析的IP地址。

  3. 递归查询与迭代查询:如果本地DNS服务器缓存中没有找到对应的解析记录,它就会根据自己的配置进行递归查询或迭代查询。

递归查询:本地DNS服务器会向根DNS服务器发送解析请求,根DNS服务器负责管理顶级域名(如.com、.org)的IP地址。根DNS服务器会返回下一级DNS服务器的IP地址。 迭代查询:本地DNS服务器根据根DNS服务器返回的IP地址,向下一级的DNS服务器发起查询请求,然后继续重复这个过程,直到找到负责该域名的最终DNS服务器。

  1. 最终DNS服务器解析与缓存:最终DNS服务器收到查询请求后,会查询自己的记录,如果有该域名的解析记录,就返回给本地DNS服务器。本地DNS服务器将得到的IP地址返回给操作系统,并缓存这个解析结果。
  2. 返回解析结果:最终,本地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是字符的名字。下面是其中一些特殊字符,及其对应的实体。

  • <&lt;
  • >&gt;
  • "&quot;
  • '&apos;
  • &&amp;
  • ©&copy;
  • #&num;
  • §&sect;
  • ¥&yen;
  • $&dollar;
  • £&pound;
  • ¢&cent;
  • %&percnt;
  • *$ast;
  • @&commat;
  • ^&Hat;
  • ±&plusmn;
  • 空格:&nbsp;

实体编号:

在这里插入图片描述
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弹窗
在这里插入图片描述

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

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

相关文章

github token使用方法

git remote set-url origin https://<githubtoken>github.com/<username>/<repositoryname>.git 在私有仓库的HTTPS的url上加入<githubtoken>即为token url&#xff0c;可以免ssh key登录

NoSQL之redis配置与优化

NoSQL之redis配置与优化 高可用持久化功能Redis提供两种方式进行持久化1.触发条件手动触发自动触发 执行流程优缺点缺点&#xff1a;优势AOF出发规则&#xff1a; AOF流程AOF缺陷和优点 NoSQL之redis配置与优化 mysql优化 1线程池优化 2硬件优化 3索引优化 4慢查询优化 5内…

iptables与防火墙

目录 防火墙 安全技术 划分方式 iptables 构成 四表 优先级 五链 iptables的规则 匹配顺序 iptables的命令格式 管理选项 匹配条件 控制类型 隐藏扩展模块 注意事项 防火墙 隔离功能&#xff0c;一般部署在网络边缘或者主机边缘&#xff0c;在工作中防火墙的…

Java 悲观锁 乐观锁

锁可以从不同的角都分类。其中乐观锁和悲观锁是一种分类方式 一、悲观锁、乐观锁定义 悲观锁就是我们常说到的锁。对于悲观锁来说&#xff0c;他总是认为每次访问共享资源时会发生冲突&#xff0c;所以必须每次数据操作加上锁&#xff0c;以保证临界区的程序同一时间只能有一个…

SQLite Studio 连接 SQLite数据库

1、在SQLite中创建数据库和表 1.1、按WINR&#xff0c;打开控制台&#xff0c;然后把指引到我们的SQLite的安装路径&#xff0c;输入D:&#xff0c;切换到D盘&#xff0c;cd 地址&#xff0c;切换到具体文件夹&#xff0c;输入“sqlite3”&#xff0c;启动服务 1.2、创建数据库…

多租户分缓存处理

多租户redis缓存分租户处理 那么数据库方面已经做到了拦截&#xff0c;但是缓存还是没有分租户&#xff0c;还是通通一个文件夹里&#xff0c; 想实现上图效果&#xff0c;global文件夹里存的是公共缓存。 首先&#xff0c;那么就要规定一个俗称&#xff0c;缓存名字带有globa…

数据库应用:MySQL MHA高可用集群

目录 一、理论 1.MHA 2.MySQL MHA部署准备 3.MySQL MHA部署 二、实验 1.MHA部署 三、问题 1.中英文符兼容报错 2.MHA测试 ssh 无密码认证语法报错 3.MHA测试 ssh 无密码认证log-bin报错 4.MHA测试 mysql 主从连接情况报错slave replication 5.MHA测试 mysql 主从连…

Elasticsearch监控工具Cerebro安装

Elasticsearch监控工具Cerebro安装 1、在windwos下的安装 1.1 下载安装包 https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.zip 1.2 解压 1.3 修改配置文件 如果需要修改相关信息&#xff0c;编辑C:\zsxsoftware\cerebro-0.9.4\conf\applica…

css3的filter图片滤镜使用

业务介绍 默认&#xff1a;第一个图标为选中状态&#xff0c;其他三个图标事未选中状态 样式&#xff1a;选中状态是深蓝&#xff0c;未选中状体是浅蓝 交互&#xff1a;鼠标放上去选中&#xff0c;其他未选中&#xff0c;鼠标离开时候保持当前选中状态 实现&#xff1a;目前…

Component template should contain exactly one root element

在vue中报错&#xff1a; Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead报错的大致意思是&#xff1a;组件的模板应该只能包含一个根元素&#xff0c;也就是是说作为元素的直…

【每日一题】—— C - (K+1)-th Largest Number (AtCoder Beginner Contest 273)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

【计算机网络 01】说在前面 信息服务 因特网 ISP RFC技术文档 边缘与核心 交换方式 定义与分类 网络性能指标 计算机网络体系结构 章节小结

第一章--概述 说在前面1.1 计算机网络 信息时代作用1.2 因特网概述1.3 三种交换方式1.4 计算机网络 定义与分类1.5 计算机网络的性能指标1.6 计算机网络体系结构1 常见的计算机网络体系结构2 计算机网络体系结构分层的必要性3 计算机网络体系结构分层思想举例4 计算机网络体系结…

本地文件夹上传到Github

本地文件夹上传到Github 步骤1. 下载git步骤2. 在github中新建一个库&#xff08;Repository&#xff09;步骤3. 设置SSH key步骤4. 添加SSH keys步骤5. 本地文件上传到github参考 步骤1. 下载git 下载git客户端&#xff0c;并在本地安装完成。 步骤2. 在github中新建一个库&a…

Install Ansible on CentOS 8

环境准备&#xff1a; 1.至少俩台linux主机&#xff0c;一台是控制节点&#xff0c;一台是受控节点 2.控制节点和受控节点都需要安装Python36 3.控制节点需要安装ansible 4.控制节点需要获得受控节点的普通用户或root用户的权限&#xff0c;控制节点需要ssh客户端&#xff0c;…

[JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 文章目录 系列文章目录前言一、本章节效果图二、介绍2.1、准备地图素材2.2、封装地图上…

[OnWork.Tools]系列 01-简介

说明 OnWork.Tools 是基于 Net6 的桌面程序。支持Windows7SP1及以上系统&#xff0c;主要是日常办公或者是开发工作过程中常用的工具集合。界面使用WPF Mvvm模式开发&#xff0c;目的是将开源项目中&#xff0c;好用的项目集成到一起&#xff0c;方便大家使用和学习。 功能 …

React:从 npx开始

使用 npm 来创建第一个 recat 文件&#xff08; react-demo 是文件名&#xff0c;可以自定义&#xff09; npx create-react-app react-demo npx是 npm v5.2 版本新添加的命令&#xff0c;用来简化 npm 中工具包的使用 原始&#xff1a; 全局安装npm i -g create-react-app 2 …

【Matter】基于Ubuntu 22.04 编译chip-tool工具

前言 编译过程有点曲折&#xff0c;做下记录&#xff0c;过程中&#xff0c;有参考别人写的博客&#xff0c;也看github 官方介绍&#xff0c;终于跑通了~ 环境说明&#xff1a; 首先需要稳定的梯子&#xff0c;可以访问“外网”ubuntu 环境&#xff0c;最终成功实验在Ubunt…

Linux 下centos 查看 -std 是否支持 C17

实际工作中&#xff0c;可能会遇到c的一些高级特性&#xff0c;例如std::invoke&#xff0c;此函数是c17才引入的&#xff0c;如何判断当前的gcc是否支持c17呢&#xff0c;这里提供两种办法。 1.根据gcc的版本号来推断 gcc --version&#xff0c;可以查看版本号&#xff0c;笔者…

数据结构【线性表】

数据结构入门级 第二章 线性表 一、线性表的定义和基本操作 线性表的定义&#xff1a;具有相同属性数据类型的数据元素组成的一个有限序列&#xff1b;除第一个元素外的元素都有直接前驱&#xff0c;除最后一个元素外的元素都有直接后继&#xff1b;存在一个唯一被称为“第一个…