发表于: 2019-12-14 18:43:23

1 1101


一、今天完成的事

学习bash命令

  • 查看内存(free)

  • 查看磁盘(df)

  • 查看cpu占用率(top)

  • 查看内核版本(uname)

1.命令分隔符(;)

#!/bin/bash
echo hello; echo there
filename=ttt.sh
if [ -e "$filename" ]; then    # 注意: "if"和"then"需要分隔,-e用于判断文件是否存在
    echo "File $filename exists."; cp $filename $filename.bak
else
    echo "File $filename not found."; touch $filename
fi; echo "File test complete."

2.cat命令

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的; cat主要有三大功能: 1.一次显示整个文件。 $ cat  filename 2.从键盘创建一个文件。 $ cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件。 $cat  file1  file2 > file cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案) 参数: -n 或 –number 由 1 开始对所有输出的行数编号 -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号 -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 –show-nonprinting 范例: cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里 cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。 范例: 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里 cat -n linuxfile1 > linuxfile2 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。 cat -b linuxfile1 linuxfile2 >> linuxfile3 cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用? EOF是“end of file”,表示文本结束符。

3..终止case选项(双分号)

使用双分号(;;)可以终止case选项。

#!/bin/bash

varname=b

case "$varname" in
   [a-z]) echo "abc";;
   [0-9]) echo "123";;
esac

二、遇到的问题

三、收获

spring security remberMe

“记住”是什么意思?

 就是下次你再访问的时候,直接进入系统,而不需要输入用户名密码。

实现原理:使用一个remember-me cookie存储在浏览器内,用户通过该浏览器再次访问网站的时候,网站识别出remember-me cookie,此用户自动登录。

两种方式:

①基于Token => 依赖于“加密签名”,即服务端根据参数生成一个Token进行对比

②基于持久化 => 依赖于数据存储,即服务端将保留Token

一、基于Token的Remember-Me

Remember-me cookie : Base64编码过的字符串,存储在浏览器内

包含以下信息:

  • 用户名

  • 过期时间

  • MD5Hash码(token/signature) =>由过期时间、用户名、密码、<remember-me>元素秘钥等字段生成

注意:cookie中并不包含密码,有包含就危险了,虽然MD5码是由密码字段参与生成的,不过MD5是单向的,几乎不可能被破解,况且又不是只有密码,还有其他字段存在

Cookie都是不可靠的,如何应用于安全服务?

答:可以将cookie中的token和后台生成的token进行对比,实行“校验”操作

操作流程:

 ①用户将Remeber-me cookie发到后台,即包括用户名,过期时间,token

 ②后台通过用户名获取到对应密码

 ③后台利用用户名、密码、过期时间、<remember-me>元素的key这几个字段生成Token

 ④将生成的Token与Cookie中的Token进行对比

 ⑤如果Token相同,则用户自动登录系统

img

为何安全?

答:因为如果不知道key和密码基本不可能生成Token,其一,key只有此应用知道,写死在配置文件里的,其二,密码只有用户本人知道。

绝对安全吗?

答:不是的,按照上面的逻辑,只要token是对的,就能登录。这就有问题了,如果token不是本人在用呢?实际上token可能会被窃取。

想象这样一种情况,有个恶意用户通过网络嗅探,获取到了某个用户发请求时候带上的token,然后他也在某天发请求的时候也带上这个token,是不是就直接登录了呢?

img

那怎么防止Token被人嗅探到呢?

答:利用SSL安全协议,即https,用户和服务端的连接是安全的,收发的信息不会被嗅探到。

二、基于Persistent(持久化)的Remember-Me

Remember-me cookie:

  • Series identifiers(序列化标识符)=> 标识用户初始化登录,不会改变

  • Token => 每次使用Remember-Me特性后,都会改变(每次自动登录都会改变Token)

与基于Token的Remember-Me有何不同?

 ①基于Token的Token是通过MD5生成。而基于Persistent的Token是直接根据从数据库中取

 ②基于Token的Token(或者叫签名)除非到达过期时间,或者用户更改了密码,否则不会过期。而基于Persistent的Token,是每次用完就过期了,后台会生成新的Token存储在数据库供下次自动登录使用。

四、明天的计划



返回列表 返回列表
评论

    分享到