登录重放攻击及安全防御

现在的应用系统中,大部分密码存储都是采用md5加密后存储,常用的登录基本流程如下:

1、前端web页面用户输入账号、密码,点击登录。

2、请求提交之前,web端首先通过客户端脚本如javascript对密码原文进行md5加密。

3、提交账号、md5之后的密码

4、请求提交至后端,验证账号与密码是否与数据库中的一致,一致则认为登录成功,反之失败。

继续阅读“登录重放攻击及安全防御”

MySQL大表加字段思路

给 MySQL 一张表加字段执行如下 sql 就可以了:

但是线上的一张表如果数据量很大呢,执行加字段操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了。

继续阅读“MySQL大表加字段思路”

Laravel 5.3 后台管理系统搭建

网上的很多基于 Laravel 的后台管理系统,要么缺少基本的功能,要么太臃肿,总是找不到自己喜欢的,于是自己做了一个。它的特点是尽可能简单又不缺少基本的后台功能,如用户认证,基于角色的权限系统(Entrust),菜单管理,媒体管理等,并且使用 AdminLte 后台界面,外观简洁功能强大。

继续阅读“Laravel 5.3 后台管理系统搭建”

Laravel 使用 env 读取环境变量为 null 的问题

不知道大家有没有遇到过,在 Laravel 中(除 app/config 目录下的配置文件中)使用 env 函数读取环境变量,有时有用,有时返回 null,究竟怎么回事?让我们一探究竟。

在 Laravel 项目中,如果执行了 php artisan config:cache 命令把配置文件缓存起来后,在 Tinker 中(Tinker 是 Laravel 自带的一个交互式命令行界面),使用 env 函数读取环境变量的值为 null,只有执行 php artisan config:clear 清除配置缓存后就可以读取了,这是为什么呢?

继续阅读“Laravel 使用 env 读取环境变量为 null 的问题”

Linux 中执行命令 ; 和 && 的区别

在 Linux 中经常使用到一个命令,如 make && make install,这里也可以使用 make ; make install,那么在 Linux 中执行命令 ; 和 && 有何区别?

&& 表示第一个命令执行成功才能执行后面的命令;

; 表示无论第一个命令执行是否成功都执行后面的命令;

还有 ||,cmd a || cmd b,表示前者执行失败了,再执行后者;