摘要: LVS 支持NAT、TUN、DR、FullNAT四种模式,DR模式只支持IP转发,不支持端口转发,因此VS端口必须与RS端口保持一致。要使用FullNAT版,需安装alibaba/LVS: https://github.com/alibaba/LVS 。 安装ipvsadm 1. 先在宿主机上安装并 阅读全文
posted @ 2017-12-18 14:44 熊猫猛男 阅读(3069) 评论(0) 推荐(1) 编辑
摘要: UTF-8用1个字节(U+0000~U+007F)来编码所有ASCII字符,并且与ASCII字符表示是一样的,故其与ASCII兼容,而那些ISO Latin-1扩展ASCII字符集的字符(128~255)是UNICODE的子集,但不是UTF-8的子集;其他的字符UTF-8编码将需要2~4个字节,首字节连续的1的个数表示字符编码所需的字节数。“编”的Unicode编码是U+7F16,因此UTF-8需要3个字节来表示,形如1110xxxx 10xxxxxx 10xxxxxx这种格式。 由于UTF-8采用的是变长字符编码,与UTF-16和UTF-32相比,无论是计算字符数,还是执行索引操作效率都不高,因此UTF-8适合在传输数据中使用,可在数据接收完毕后将其转换为UTF-16或UTF-32进行处理,最后再转换回UTF-8(但这转换本身也会有性能损耗);但UTF-8空间足够大,无字节序问题,且容错性高,局部的字节错误(丢失、增加、改变)不会导致连锁性的错误,因为 UTF-8 的字符边界很容易检测出来 阅读全文
posted @ 2017-08-08 09:20 熊猫猛男 阅读(1235) 评论(0) 推荐(0) 编辑
摘要: Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/,然后在编译配置Nginx时要指定--with-http_ssl_module和--with-http_v2_module。另外,若要在本地运行openssl命令,要安装OpenSSL包,本人用的OpenSSL-1.0.2g。证书链(Certificate Chain)包括信任锚(CA 证书)和签名证书,是由一系列 CA 证书发出的证书序列,最终以根 CA 证书结束;Web 浏览器已预先配置了一组浏览器自动信任的根 CA 证书,来自其他证书授权机构的所有证书都必须附带证书链,以检验这些证书的有效性。在很多部署场景中,单一的服务器证书显得不足,而多个证书则需要建立一个信任链 阅读全文
posted @ 2017-06-06 16:59 熊猫猛男 阅读(3681) 评论(2) 推荐(3) 编辑
摘要: 四种角色定义: Resource Owner:资源所有者,即终端用户 Resource server:资源服务器,即提供资源存储访问一方 Client:通常指第三方应用 Authorization server:授权服务器   协议端点(URI):OAuth给授权过程定义了Authorization、Token和Redirection三种端点。Authorization端点用来完成用户授权,在授权码模式(Authorization Code)和隐含模式(Implicit)下被用到;Token端点用来交换与获取access token,不能包含fragment(hash),在隐含模式(Implicit)下则无需提供该端点;Redirection端点用来接收授权凭证,Public客户端或者Implicit授权的Confidential客户端必须注册其Redirection端点。   客户端类型:OAuth根据是否能够进行安全认证定义了两种客户端类型:机密型客户端(Confidential)和公开型客户端(Public)。其中机密型客户端有Web应用,公开型客户端包括Us 阅读全文
posted @ 2017-05-28 14:28 熊猫猛男 阅读(2944) 评论(0) 推荐(2) 编辑
摘要: Bearer Token (RFC 6750) 用于OAuth 2.0授权访问资源,任何Bearer持有者都可以无差别地用它来访问相关的资源,而无需证明持有加密key。一个Bearer代表授权范围、有效期,以及其他授权事项;一个Bearer在存储和传输过程中应当防止泄露,须使用Transport Layer Security (TLS);一个Bearer有效期通常很短,最好不超过1小时。Token 伪造/修改(Token manufacture/modification):攻击者伪造或修改已有的token,导致资源服务器授权通过非法访问的客户端。因此需要对token使用数字签名或消息认证码来保证其完整性 Token 泄露(Token disclosure):Token本身可能包含认证、有效期等敏感信息。因此实现TLS并验证证书是必选项,加密token可用于防止客户端观察token的内容,加密token还可防止token在前端服务器和后端服务器(如果他们没有启用TLS)之间发生泄露 Token 改寄(Token redirect):攻击者用一个访问A资源服务器的to 阅读全文
posted @ 2017-05-07 15:52 熊猫猛男 阅读(63648) 评论(4) 推荐(11) 编辑
摘要: 在线字典攻击(Online dictionary attacks):攻击者可以尝试用包含口令的字典进行模拟计算response,然后与窃听到的任何nonce / response对进行对比,若结果一致则攻击成功。为应对针对弱口令的字典攻击,降低攻击成功的可能性,可以禁止用户使用弱口令 中间人(Man in the Middle):在一次中间人攻击中,一个弱认证方案被添加并提供给客户端,因此你总是应该从多个备选认证方案中选择使用最强的那一个;甚至中间人可能以Basic认证替换掉服务端提供的Digest认证,从而窃取到用户的安全凭证,然后中间人可利用该凭证去响应服务端的Digest认证盘问;攻击者还可能打着免费缓存代理服务的幌子来招揽轻信者,通过实施中间人攻击,盗取他们的安全凭证;中间代理也可能诱导客户端来发送一个请求给服务端。为此,客户端可考虑给出安全等级风险警示,或在跟踪服务端的认证配置时发现其认证强度降低就发出警告,或配置成只使用强认证,或从指定站点来完成认证 预先计算字典攻击(Precomputed dictionary attacks):攻击者先构建(response, pa 阅读全文
posted @ 2017-04-26 14:48 熊猫猛男 阅读(6216) 评论(1) 推荐(1) 编辑
摘要: ECMAScript 6.0是JavaScript语言的2015年6月的发布版。let用来声明变量,用法类似于var,但是只在let命令所在的代码块内有效。const声明一个只读的常量。对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量必须非常小心。对于let和const来说,变量一旦声明过就不能再重新声明;但var可以。数组解构赋值:这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。模板字符串(template string):用反引号(`)标识,它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量(写在${}之中)。Array.from():用于将类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)转为真正的数组。rest参数(...变量名):rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中,rest 参数之后不能再有其他参数 阅读全文
posted @ 2017-02-07 16:57 熊猫猛男 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 在编辑Dockerfile过程中参考了以下相关范例:https://hub.docker.com/_/php/、https://hub.docker.com/_/mysql/、https://hub.docker.com/_/nginx/。在build镜像时可能报出异常“containerd: container not started”,此时可能需要重启containerd或系统。 阅读全文
posted @ 2017-01-06 16:26 熊猫猛男 阅读(1290) 评论(0) 推荐(0) 编辑