有很多密码管理工具,但是大部分都是收费而且无法自建,Bitwarden 是个开源的密码管理工具,组织功能满足了团队内部密码共享的需求,而且支持自建,对于很多企业用户来说是个不错的选择。 但是它的安全性如何是个问题,企业用户对程序安全的要求是很高的,否则这么多鸡蛋放到一个篮子里,万一出问题,真的是个大问题。我最近对 Bitwarden 的安全流程做了一个分析,写个文章供大家参考一下。
Chrome 下 SameSite 为空时对跨站表单提交行为的处理策略
Chrome 80 之后强制将 SameSite 默认设置为 Lax,根据 Lax 等级的策略,是无法携带 Cookie 进行跨站 POST 表单的,但实际情况是可以在两分钟内携带 Cookie(暂时),两分钟后将会完全 Lax 的安全策略。
书写优雅代码,避免代码的多层级嵌套
If you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
生产消费模式下多消费者的先后顺序保证方案
我先发布了一篇文章,后来修改了,然后删除了。这些操作都被塞进了一个队列,有多个进程会取出这个队列中的任务,进行操作,一般情况下,取出任务会很快,这些进程几乎同时拿到任务,如果插入文章的时候比较耗时,它还没有完成这个任务,更新和删除的进程已经在执行了,这肯定会有问题。
对PHP函数 rtrim 一个误解的地方
rtrim函数的第二个参数,是以字符为单位操作的,比如rtrim("helloworld", "world")会返回 he,在删除world之后,o、l也在world中出现,也会被删除,直到匹配字符 e 的时候停止。
PHP自动解码超全局变量 $_GET 和 $_REQUEST
PHP会对超全局变量 $_GET 和 $_REQUEST 自动解码。代码中对 $_GET 或 $_REQUEST 里的元素使用 urldecode() 将会导致不可预计和危险的结果。
PHP函数mb_substr关于字符编码的一个坑
PHP的mb_substr函数在PHP5.6之前的默认编码是ISO-8859-1,在UTF8模式下,一个汉字占3个字节,如果处理汉字的时候不指定编码,取出来的数据会有异常。
两个排过序的数组,找出其中交集元素
思路:取出数组第一个元素对比另外一个数组的第一个元素,如果相同,得到交集元素,两个数组下标各自+1,如果第一个小于第二个,第二个下标不变,第一个数组下标+1,如果第一个大于第二个,第一个下标不变,第二个下标+1。
找出字符串中最长的回文字符串
题目解释:回文字符串,和回文数一个概念,就是说字符串是对称的,比如"ABCBA"。题目举例:输入"babad",输出"bab"或者"aba"。 思路:以输入字符串的长度为起始长度,逐渐递减1,以下标0为开始,向右平移,到达最右,直到找到回文字符串。
Laravel分页生成器的使用
使用Laravel查询数据库的时候,使用paginate这个方法,Laravel会自动返回分页信息,十分方便。但是如果查询的数据不是来源于本地数据库,可能就不能那么直接的使用分页了,实际上也是可以调用Laravel的分页生成器的。