2016 年 08 月 - 26 文章

oauth2.0及微信中oauth2.0的运用

  |   0 评论   |   0 浏览

##1. 理解OAuth2.0 首先我们通过一张图片来了解一下OAuth2.0的运作模式: 从上图我们可以看到,整个过程进行了2次“握手”,最终利用授权的AccessToken进行一系列的请求,相关的过程说明如下: A:由客户端向服务器发出验证请求,请求中一般会携带这些参数 ID标识,例如appId 验证后跳转到的URL(redirectUrl) 状态参数(可选) 授权作用域scope(可选) 响应类型(可选) B:服务器返回一个grant授权标识(微信默认情况下称之为code),类似于一个一次性的临时字符串密钥。如果在A中提供了redirectUrl,这里服务器会做一次跳转,带上grant和状态参数,访问redirectUrl。 C:客户端的redirectUrl对应页面,凭借grant再次发起请求,这次请求通常会携带一些敏感信息: ID标识 密码 grant字符串(code) grant类型(可选,微信中默认为code) D:服务器验证ID标识、密码、grant都正确之后,返回AccessToken(注意,这里的AccessToken和之前通用接口、高级接口介绍的AccessTok....

sql注入分析

  |   0 评论   |   0 浏览

##1. 什么是sql注入 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过让原SQL改变了语义,达到欺骗服务器执行恶意的SQL命令。其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。 ##2. SQL注入实例 很多Web开发者没有意识到SQL查询是可以被篡改的,从而把SQL查询当作可信任的命令。殊不知,SQL查询是可以绕开访问控制,从而绕过身份验证和权限检查的。更有甚者,有可能通过SQL查询去运行主机系统级的命令。 下面将通过一些真实的例子来详细讲解SQL注入的方式。 考虑以下简单的登录表单: <form action="/login" method="POST"> <p>Username: <input type="text" name="username" /></p> <p>Password: <input type="password" name="password" /></p> <p><inp....

Why we picked AKKA cluster as our microservice framework

  |   0 评论   |   0 浏览

申明: 本文是从国外技术网站上看到的。觉得比较好久摘录下来了。仅做学习之用。 点击此处查看原文链接,需要翻墙 Recently at iHeartRadio we decided to migrate our one monolithic Java backend service into multiple microservices, more specifically we decided to implement these microservices as Akka apps and use Akka cluster to weave them into our microservice cluster. This post is about how we reached this decision. There are three main sections in this post: first a brief discussion of the goals we wanted to achieve with microservices, second, the speci....

数据库索引-复制-事务详谈

  |   0 评论   |   0 浏览

数据库学习笔记 标签(空格分隔): 数据库 数据库 1. 数据库优化的一些手段 尽量避免null类型的列 使得索引、索引统计、值比较都比较复杂、使用更多的存储空间、null的列为索引时,每个索引记录需要额外一个字节、 datetime timestamp timestamp只使用datetime一半的存储空间。并且会根据时区变化。 整数类型 tinyint、smallint、mediumint、int、bigint分别使用8/16/24、32/64位存储空间 unsigned属性表示不允许负值 字符串类型 varchar char的区别 varchar存储可变长的字符串、需要用额外1、2一个字节记录字符串长度信息、适合最大长度比平均长度大很多。。列的更新很少,碎片不是问题 char是定长的,适合经常变更的数据、因为不容易产生碎片。也适合非常短的列、比如char(1)存储y和n的值,char只需要一个字节,而varchar需要两个字节,额外一个字节存储长度信息 2. 索引知识 分为btree索引和哈希索引 数据库索引的实现 为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入....

zookeeper学习总结

  |   0 评论   |   0 浏览
  1. zookeeper的作用 配置中心 分布式锁(和我遇到的分布式锁的区别) 统一命名服务。和JNDI类似 分布式系统的故障修复。由master监控集群中服务器状态。当有服务器挂掉时通知其他服务器重新分配不同节点的计算任务。master挂掉会新一轮重新选举master。   2. 特点 精简的文件系统。管理小文件。hadoop是大型文件系统。 采用观察者设计模式   3. 分布式一致性协议 二阶段提交 第一阶段: 协调者会问所有的参与者结点,是否可以执行提交操作。 各个参与者开始事务执行的准备工作:如:为资源上锁,预留资源,写undo/redo log…… 参与者响应协调者,如果事务的准备工作成功,则回应“可以提交”,否则回应“拒绝提交”。 第二阶段: 如果所有的参与者都回应“可以提交”,那么,协调者向所有的参与者发送“正式提交”的命令。参与者完成正式提交,并释放所有资源,然后回应“完成”,协调者收集各结点的“完成”回应后结束这个Global Transaction。 如果有一个参与者回应“拒绝....

分布式消息队列

  |   0 评论   |   0 浏览
  1. 为什么要在系统中加入消息队列 系统解耦 可靠投递 流量控制 广播 最终一致性 耗时操作   2. 比较热门的消息队列 ActiveMQ [Apache维护] RabbitMQ [Erlang编写] RocketMQ [阿里维护] Jafka/Kafka[apache] 分布式消息系统,由LinkedIn于2010年开源。scala语言编写。低延迟的发送和收集大量的事件和日志数据。 mq[alibaba] 插入一点数据库知识点   3. 数据库拆分类型 垂直拆分 把关联性不强的表拆分到不同的dbserver 水平拆分 适用于单表数据量很大的时候.根据字段来拆分.如根据userid再哈希分表.把不同字段分到不同的库中.常用字段和不常用字段分开存储.   4. 拆分之后面临的问题   a. 事务问题 使用分布式事务[细节] 由数据库管理事务,这样性能代价高! 由应用程序和数据库共同控制 将一个跨多个数据库的分布式事务分拆成多个仅处于单个数据库上面的小事务,并通过应用程序来总控各个小事务。性能有优势....