【PaaS】认证、授权、鉴权和权限控制

【PaaS】认证、授权、鉴权和权限控制

本篇将对信息安全领域中(主要指)认证、授权、鉴权和权限控制这四个概念给出相应的定义,并对这个概念之间的相互关系进行梳理。

1. 认证

认证是指根据声明者所特有的识别信息,确认声明者的身份。认证在英文中对应于identification这个单词。

最常见的认证实现方式是通过用户名和密码,但认证方式不限于此。下面都是当前常见到的认证技术,

  • 身份证
  • 用户名和密码
  • 用户手机:手机短信、手机二维码扫描、手势密码
  • 用户的电子邮箱
  • 基于时间序列和用户相关的一次性口令
  • 用户的生物学特征:指纹、语音、眼睛虹膜
  • 用户的大数据识别
  • 等等

为了确认用户的身份,防止伪造,在安全要求高的场合,经常会使用组合认证(或者叫多因素认证),也就是同时使用多个认证方式对用户的身份进行校验。


Python效率提升技巧

Python 效率提升技巧

副标题:超三成的python 初学者,倒在了这三个坑内

坊间流传着一句经典:“人生苦短,我用Python!”

python目前斩获的头衔有:挤掉java成为编程语言排行第二、增量最快、AI时代头牌语言,甚至已经入选北京山东等地的中小学教材,因为其简单易用,适用广泛,已经成为很多初学编程人的首选语言。

但由于Python的某些特有的历史原因,例如版本兼容问题等,导致在学习的过程中,总会遇到几个大坑,导致刚刚萌芽的学习热情就被无情浇灭。本篇主要讲解初学python过程中最常遇到的3个大坑:

  1. 版本兼容问题
  2. 依赖包无法下载安装问题
  3. 工程依赖环境问题

学习这几点,初学者不再倒在入门的门槛上,轻松入门;已入门的,可以帮您提高python开发使用和效率


vultr服务器网速问题排查和机房选择

vultr网速问题排查

公司用电信百兆,使用Vultr的日本服务器,延迟300多ms,丢包率50%,网页直接打不开,之前都能秒开Youtube1080分辨率视频,现在开个google搜索都要半天,然后就去排查问题。

先是测试vultr 服务器自身宽带有没有缺斤少两,下载speedtest工具测试,发现服务器自身网速快的飞起,下载有82M每秒。

1
2
3
4
5
6
7
8
9
10
11
12
13
git clone https://github.com/sivel/speedtest-cli.git
cd speedtest-cli/
python speedtest.py
[root@vultr speedtest-cli]# python speedtest.py
Retrieving speedtest.net configuration...
Testing from Choopa, LLC (167.179.101.219)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by i3D.net (Tokyo) [12.49 km]: 1.004 ms
Testing download speed................................................................................
Download: 825.28 Mbit/s
Testing upload speed......................................................................................................
Upload: 504.59 Mbit/s

那么只可能是本地网络到服务器的网络通道出了问题:


Hadoop2.9 单机/伪分布式安装(Centos7环境)

Hadoop2.9 单机/伪分布式安装(Centos7环境)

准备

需要准备的软件: Java , ssh

下载Haddop:http://www.apache.org/dyn/closer.cgi/hadoop/common/

安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:

1
rpm -qa | grep ssh

若需要安装,则可以通过 yum 进行安装

1
2
sudo yum install openssh-clients
sudo yum install openssh-server

测试ssh 是否可以用

1
ssh localhost

金融系统中正确的金额计算及存储方式

金融系统中正确的金额计算及存储方式

经典的精度丢失问题

Java中的类型float、double用来做计算会有精度丢失问题,下面来看下面的示例。

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
test1();
test2();
}

private static void test1() {
double totalAmount = 0.09;
double feeAmount = 0.02;
double tradeAmount = totalAmount - feeAmount;
System.out.println(tradeAmount);
}

上面的程序输出结果是多少?

0.07?非也!

正确的结果是:

1
0.06999999999999999

为什么是这样?


Nginx配置经验

1. Nginx 会导致 带下划线命名的Header参数丢失

nginx对下划线的头信息做了限制

  1. 不用下划线

  2. 配置nginx 参数

    underscores_in_headers on; (默认 underscores_in_headers 为off)

2. nginx proxy_pass后的url加不加/的区别

第一种:proxy_pass后缀不加斜杠

1
2
3
location /abc/ {
proxy_pass http://172.16.1.38:8080;
}

第二种:proxy_pass后缀加斜杠

1
2
3
location /abc/ {
proxy_pass http://172.16.1.38:8081/;
}

上面两种配置,区别只在于proxy_pass转发的路径后是否带/


物联网数据特性

物联网产生的数据通常具有以下明显的特征:

1: 数据是时序的,一定带有时间戳;

2:数据是结构化的;

3: 数据极少有更新或删除操作;

4:数据源是唯一的;

5:相对互联网应用,写多读少;

6:用户关注的是一段时间的趋势,而不是某一特点时间点的值;

7: 数据是有保留期限的;

8:数据的查询分析一定是基于时间段和地理区域的;

9:除存储查询外,还往往需要各种统计和实时计算操作;

10:流量平稳,可以预测;

11:往往需要有插值等一些特殊的计算;

12:数据量巨大,一天采集的数据就可以超过100亿条。


TDengine简单总结

TDengine简单总结

1. 总结

先放总结:

  1. 核心代码全部开源,目前是单机开源,如果要用集群版,还是要商业版收费,毕竟带着商业目标,小数据量单机可以玩玩
  2. 未披露扩展性、数据一致性、容错性、可用性等分布式技术细节,也未披露数据库的相关特性实现细节
  3. 做性能对比选择的视角比较奇怪:客户端数对单机服务器性能的影响,其他数据库评测的都是单机性能和集群机器数带来的水平扩展能力
  4. 只支持定长的数据类型(数值、bool和字符串),字符串只支持定长,如果超出申明长度会被截断(评测也全为定长数据)
  5. 聚合函数性能对比,tdengine的函数均是非常简单的函数,所有函数加起来不到20个,并且每个数据块都已经做了预聚合(和、最大、最小值等),所以这个评测应该是 预计算 VS 即席查询,结果就不公平了
  6. 提供了简版的缓存、MQ等组件。这些组件的分布式特性未可知
  7. 可以根据查询的时间范围直接对内存数据和本地文件进行聚合查询,SQL层面不需要关心
  8. 函数和特性过少,不合适做大数据分析,针对物联网数据的特点做了针对性优化,不过其定位领域也是IOT ,如果要扩展到其他非IOT时序场景,需要多考虑考虑

有人说只是个WAL,绝壁算不算一个数据库,没条件做性能测试,期待其他第三方的全方位评测


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×