常用编码学习

本文详细介绍了网页编码(如UTF-8、GBK)、HTML实体及其使用,展示了URL编码、XSS攻击实例,以及JavaScript、JSON、Base64等编码方式。深入探讨了序列化和反序列化的概念,涉及前端、后端、移动开发和数据传输等领域。
摘要由CSDN通过智能技术生成

常用编码

页面编码

网页设置网页编码在<head></head>中加入

<meta charset="UTF-8">

常用的三种:utf-8、gbk、gbk2312

ascii编码

ASCII编码

html编码

实体

HTML 中有用的字符实体

**注意:**实体名称对大小写敏感!

显示结果描述实体名称实体编号
空格&nbsp;&#160;
<小于号&lt;&#60;
>大于号&gt;&#62;
&和号&&#38;
"引号"&#34;
撇号' (IE不支持)&#39;
分(cent)¢&#162;
£镑(pound)£&#163;
¥元(yen)¥&#165;
欧元(euro)&#8364;
§小节§&#167;
©版权(copyright)©&#169;
®注册商标®&#174;
商标&#8482;
×乘号×&#215;
÷除号÷&#247;

命名实体:@加希腊字母

字符编码:&加十进制

十六进制:ascii或unicode字符编码

浏览器先解析html子啊进行渲染,编码要在“值”内

例子:

<img src = "https://www.baidu.com/img/flexible/logo/pc/result.png">

十六进制
<img src = "&#x0068;&#x0074;&#x0074;&#x0070;&#x0073;&#x003A;&#x002F;&#x002F;&#x0077;&#x0077;&#x0077;&#x002E;&#x0062;&#x0061;&#x0069;&#x0064;&#x0075;&#x002E;&#x0063;&#x006F;&#x006D;&#x002F;&#x0069;&#x006D;&#x0067;&#x002F;&#x0066;&#x006C;&#x0065;&#x0078;&#x0069;&#x0062;&#x006C;&#x0065;&#x002F;&#x006C;&#x006F;&#x0067;&#x006F;&#x002F;&#x0070;&#x0063;&#x002F;&#x0072;&#x0065;&#x0073;&#x0075;&#x006C;&#x0074;&#x002E;&#x0070;&#x006E;&#x0067;">

十进制
<img src = "&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;&#119;&#119;&#119;&#46;&#98;&#97;&#105;&#100;&#117;&#46;&#99;&#111;&#109;&#47;&#105;&#109;&#103;&#47;&#102;&#108;&#101;&#120;&#105;&#98;&#108;&#101;&#47;&#108;&#111;&#103;&#111;&#47;&#112;&#99;&#47;&#114;&#101;&#115;&#117;&#108;&#116;&#46;&#112;&#110;&#103;">

XSS
十六进制
<img src="x" onerror="&#x0061;&#x006C;&#x0065;&#x0072;&#x0074;&#x0028;&#x0031;&#x0029;">
十进制
<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

url编码

可用于绕过多种类型的过滤器

url编码最基本的表示方式是实验十六进制ASCII编码替换,并在ASCII编码前加%。

例子:'的ASCII编码为 0x27,url编码为%27

js编码

<script>alert('hello')</script>

脚本之家_编码解码工具

js的十六进制编码

\x3C\x73\x63\x72\x69\x70\x74\x3E\x61\x6C\x65\x72\x74\x28\x27\x68\x65\x6C\x6C\x6F\x27\x29\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E

js的八进制编码

\74\163\143\162\151\160\164\76\141\154\145\162\164\50\47\150\145\154\154\157\47\51\74\57\163\143\162\151\160\164\76

js unicode编码

\u003C\u0073\u0063\u0072\u0069\u0070\u0074\u003E\u0061\u006C\u0065\u0072\u0074\u0028\u0022\u0068\u0065\u006C\u006C\u006F\u0022\u0029\u003B\u003C\u002F\u0073\u0063\u0072\u0069\u0070\u0074\u003E

hex编码

常用于数据库,转码后加0x

a的hex编码为61,数据库中实验要加上0x,0x61

base64编码

安全效果很差,核心作用是传输数据的正确性,是讲非ascii码转为ascii的一种方法,适合在http和mmime协议下传输数据。

<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgnaGVsbG8nKTwvc2NyaXB0Pg==">XSS</a>

json编码

json是一种轻量级数据交换格式,简单高效。

[
    {
        "Name": "a1",
        "Number": "123",
        "Contno": "000",
        "QQNo": "123"
    },
    {
        "Name": "a2",
        "Number": "123",
        "Contno": "000",
        "QQNo": "11"
    }
]

序列化

序列化(Serialization)是将对象的信息转换为可以存储的形式的过程。序列化

a:3{i:0,s:3:"Moe";i:1,s:5:"Larry",s:5:"Curly";}
<?php
$stooges = array('Moe','Larry','Curly');
$new = serialize($stooges);	//序列化
print_r($new);
echo"<br>";
print_r(unserialize($new));  //反序列化
?>
a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";}
Array ( [0] => Moe [1] => Larry [2] => Curly )

utf-7编码

用于传输数据,主要用于电子邮件。

https://web2hack.org/xssee/

很全面的网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RICKC131

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值