coolcao的小站

coolcao的code点滴


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

一种基于Canvas和对称加密的Web前端隐私数据保护方式

发表于 2018-08-22   |   分类于 技术博客 , 原创

之前在爬虫攻防之前端策略简析这篇文章中简单分析过目前Web前端对于反爬虫而采取的一些方式,比如使用图片,使用自制字体,还有使用CSS错位等方式,这几种方式中比较流行的自定义字体形式,我在文章中也做了一定的分析,处理得当也可以进行破解。

阅读全文 »

MySQL事务隔离级别学习

发表于 2018-08-10   |   分类于 笔记 , mysql

1. MySQL事务隔离级别学习笔记

1.1. 隔离级别

  1. READ UNCOMMITTED 未提交读

    在READ UNCOMMITTED级别,事务中的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,这也被称作脏读。这个级别会导致很多问题,从性能上来说,READ UNCOMMITTED不会比其他的级别好太多,但确缺乏其他级别的很多好处,除非真的有必要的理由,在实际应用中一般很少使用。

  2. READ COMMITED 提交读

    大多数数据库系统的默认隔离级别是 READ COMMITED(但mysql不是)。READ COMMITED满足前面提到的隔离性简单定义:一个事务开始时,只能看见已经提交的事务所做的修改。换句话说,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。这个级别有时候也叫做不可重复读,因为两次执行同样的查询,可能会得到不一样的结果。

    这里的原因是,在两次执行同样的查询中间,可能由其他事务修改了影响查询结果的数据。在 Read Commited级别下,会发生这种情况。

  3. REPEATABLE READ 可重复读

    MySQL的默认事务隔离级别。
    REPEATABLE READ解决了脏读的问题。该级别保证了在同一个事务中多次读取同样的记录的结果是一致的。但是理论上,可重复读隔离级别还是无法解决另一个幻读的问题。所谓幻读,指的是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行。InnoDB存储引擎通过多版本并发控制(MVCC)解决了幻读的问题。

    在一个事务未提交前,多次查询相同的查询,都会返回相同的结果。即使在此期间有其他事务已提交了影响该查询的数据。

  4. SERIALIZABLE 可串行化

    SERIALIZABLE 是最高的隔离级别。它通过强事务串行执行,避免了前面说的幻读的问题。简单来说,SERIALIZABLE会在曲度的每一行数据都加上锁,所以可能导致大量的超时和锁争用的问题。实际应用中也很少用到这个隔离级别,只有在非常需要确保数据一致性而且可以接受没有并发的情况下,才考虑使用该级别。

阅读全文 »

https运行原理解析笔记

发表于 2018-08-06   |   分类于 笔记 , HTTPS

HTTPS运行原理解析笔记

HTTPS可以看作是安全的HTTP,你可能听说过关于HTTPS的一些问题,比如什么握手,什么证书,加密之类的等等。

HTTPS为何能保障web的安全,其运行原理是怎样的,当我们深入了解下去,其设计的思路对我们其他安全方面的设计也有一定的启发作用。

阅读全文 »

线性代数复习之矩阵

发表于 2018-08-04   |   分类于 笔记 , 数学

线性代数复习之矩阵

最近在看吴恩达的机器学习的课程,里面用到了基础的线性代数的知识,遂把上学时候的东西再拿出来复习一遍,整理成笔记,以备随时查阅。

阅读全文 »

公钥加密算法的基石:大素数

发表于 2018-07-26   |   分类于 技术博客 , 科普

素数,又称质数,我们在小数数学课上就已经学习到其概念:是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。

素数的概念简单至极,但对其的研究,却是数学家们终其一生的目的。当然,本篇文章不是讨论数学中对素数的研究,而是素数在现代密码学中的应用。

阅读全文 »

如何正确对用户密码进行加密?

发表于 2018-07-24   |   分类于 技术博客 , 转载

本文转载自 如何正确对用户密码进行加密?。由刘志勇翻译自Defuse Security团队的文章Salted Password Hashing - Doing it Right

作为一名Web开发人员,我们经常需要与用户的帐号系统打交道,而这其中最大的挑战就是如何保护用户的密码。经常会看到用户账户数据库频繁被黑,所以我们必须采取一些措施来保护用户密码,以免导致不必要的数据泄露。保护密码的最好办法是使用加盐密码哈希( salted password hashing)。

在对密码进行哈希加密的问题上,人们有很多争论和误解,可能是由于网络上有大量错误信息的原因吧。对密码哈希加密是一件很简单的事,但很多人都犯了错。本文将会重点分享如何进行正确加密用户密码。

重要警告:请放弃编写自己的密码哈希加密代码的念头!因为这件事太容易搞砸了。就算你在大学学过密码学的知识,也应该遵循这个警告。所有人都要谨记这点:不要自己写哈希加密算法! 存储密码的相关问题已经有了成熟的解决方案,就是使用 phpass,或者在 defuse/password-hashing 或 libsodium 上的 PHP 、 C# 、 Java 和 Ruby 的实现。

阅读全文 »

爬虫攻防之前端策略简析

发表于 2018-06-09   |   分类于 技术博客 , 原创

看到一篇文章,介绍在反爬虫过程中,前端工程师的各种脑洞,文章见这里。
文章里介绍了几个大的网站,在反爬虫过程中,采取的各式各样的策略,无不体现出前端工程师的奇葩脑洞。
还挺有意思的,就简单分析了一下,针对每个方案,看看有没有解决办法,于是整理成博客,记录一下。

阅读全文 »

配置vscode调试java代码

发表于 2018-01-25   |   分类于 闲聊杂谈 , 开发工具

习惯了vscode,现阶段因工作需要需切换到java做项目,因此就想看看能不能配置一下vscode来写java,配置完后,发现效果还不错,也有一些小发现,这里将过程记录一下,以备后续用。

阅读全文 »

co源码学习

发表于 2017-12-28   |   分类于 技术博客 , 原创

使用async/await写代码很长一段时间了,在之前,用 co+生成器函数+yield也有一段时间,用起来很爽,但却没有仔细了解其中的原理。
为啥异步的代码,使用async/await或者Generator+yield能写成“同步”的?co又是啥,为啥Generator+yield要用co进行包裹?

阅读全文 »

js中模拟实现私有属性

发表于 2017-08-14   |   分类于 技术博客 , 原创

今天在看《你不知道的 js》这本书时,无意看到 Object 还有个方法叫做 getOwnPropertySymbols() ,用来获取对象的 Symbol 属性。记得之前看过一些文章说,可以使用 Symbol 来实现私有属性,如果能直接使用 getOwnPropertySymbols() 方法获取 Symbol 属性,那还是私有属性么?

今天复习整理一下关于 js 中创建私有属性的一些问题。

由于 js 并不是 Java 那种类式面向对象,因此即使 es6 添加了 class 支持,js 根上还是基于原型的面向对象,不支持什么私有,公有属性的。

要想实现私有属性,基于现有的 js,途径只有一个: 闭包。

阅读全文 »
<上一页>1…567…10<下一页>

93 日志
15 分类
114 标签
RSS
GitHub 微博
© 2015 - 2025 coolcao
由 Hexo 强力驱动
主题 - NexT.Mist