《HTTP - 基于http的认证》

时间:2021-01-23 13:09:43

推荐一首歌

  - 好吧,今天刚入职第二天,也没听歌。

哈哈哈哈。

1:何为认证?

  - 其实这个问题就比较宽泛了,总的来说,就是你有证明你身份的标识。

  - 和人类社会一样,你花了钱想看一场场演唱会,但是谁能证明你花了钱,谁又能证明证明你的人是正确的?

    - 所以,会给你一张演唱会票,告诉你,不管是谁买的,只要你持有这张票,我就认为你是花了钱的。

    - 这也就是认证的大概意思。

2:HTTP1.1 - 提供的认证方式有哪些?(注意,这只是HTTP提供的一些认证方式,在平常的使用中,并不常用)

  - BASIC 认证 (基本认证)

  - DEGIST 认证 (摘要认证)

  - SSL 客户端认证

  - FormBase 表单认证

3:BASIC 的简单实现?

  - 优点:

    - 足够简单,快捷。

  - 缺点:

    - 没有任何加密,base64编码,简单破解。

    - 就像在路上捡了一张地铁卡一样。

  - 实现:

    - 简单来说,依靠header头中的 WWW-authenticate 字段实现认证

<?php

$name = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];

if($name && $password) {
    var_dump($name);
    var_dump($password);
}
else {
    header('WWW-authenticate:Basic');
}

    - 登录之后再看一下报头

《HTTP - 基于http的认证》

    - 实现了一个简单的 BASIC 认证

4:这里介绍一个简单的 BASIC 认证吧,其他的其实也差不多,但是是实际工作中也并不常用,原因也很简单,太容易被破解。

  - 好吧,之前说的太绝对了,SSL 还可以。