用户接口

Linux操作系统概要认识

 ̄綄美尐妖づ 提交于 2020-01-10 13:57:15
01)发展与演变  从ENIARC到Linux,前发展时期从20世纪40年代至20世纪90年代。  Linux出现后的后发展时期,从1992年往后。  认识到GUN/Linux才是操作系统的名称。  更多的就不做介绍了。 02)操作系统开发模式  大型软件开发模式:大教堂式、集市模式  Linux开发模式:集市模式  Windows开发模式:大教堂式 03)操作系统的组成  狭义的操作系统:内核  广义操作系统:内核+应用程序 04)操作系统(内核)功能  1、驱动程序  2、进程管理  3、安全管理  4、网络管理  5、内存管理  6、文件系统  … 05)系统调用接口(Syscall)  操作系统内核全盘接管计算机硬件,用户通过内核功能使用到计算机硬件,内核向上提供系统调用接口(API)为用户提供使用方式。  调用接口的模式还有利于抹平下层的复杂性,为上次提供统一的调用方法,例如不同公司生产的磁盘、CPU,其规格和使用方式不同,通过专门的驱动程序实现与硬件的匹配,但向上提供相同的调用接口,这样上层软件就可以不用管下层硬件。  注:系统调用接口不是给使用者(人)使用的,是给程序使用的 06)库接口(Libcall)  将系统调用进一步封装,以及将一些常用函数进一步封装,为程序提供更便捷的调用,便形成库。  有通用的库,例如glibc,已成为Linux操作系统标准,操作系统自带

shiro(java安全框架)

Deadly 提交于 2020-01-09 19:35:36
shiro(java安全框架)     以下都是综合之前的人加上自己的一些小总结     Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 Shiro 主要分为来个部分就是认证和授权,在个人感觉来看就是查询数据库做相应的判断而已,Shiro只是一个框架而已,其中的内容需要自己的去构建,前后是自己的,中间是Shiro帮我们去搭建和配置好的     个人认为需要看一下其中的一些源码,更有帮助的深入的去了解Shiro的原理。 Shiro的主要框架图: 方法类的走向: 对一些其中的方法的简单说明: Subject Subject即主体,外部应用与subject进行交互,subject记录了当前操作用户,将用户的概念理解为当前操作的主体,可能是一个通过浏览器请求的用户,也可能是一个运行的程序。 Subject在shiro中是一个接口,接口中定义了很多认证授相关的方法,外部程序通过subject进行认证授,而subject是通过SecurityManager安全管理器进行认证授权 SecurityManager SecurityManager即安全管理器,对全部的subject进行安全管理,它是shiro的核心

Flink+Redis实时预警

流过昼夜 提交于 2020-01-09 17:49:47
随着人口红利的慢慢削减,互联网产品的厮杀愈加激烈,大家开始看好下沉市场的潜力,拼多多,趣头条等厂商通过拉新奖励,购物优惠等政策率先抢占用户,壮大起来。其他各厂商也紧随其后,纷纷推出自己产品的极速版,如今日头条极速版,腾讯新闻极速版等,也通过拉新奖励,阅读奖励等政策来吸引用户。 对于这类APP,实时风控是必不可少的,一个比较常见的实时风控场景就是防刷接口作弊。刷接口是黑产的一种作弊手段,APP上的各种操作,一般都会对应后台的某个接口,用户操作APP数据就会通过接口上报到后台,但如果黑产通过破解获取到了APP的新增用户接口,那他们就能跳过登陆APP步骤直接调后台接口构造虚假数据牟利了。对于这类业务,我们可以通过Flink + Redis来实现实时防刷接口的功能。数据流图如下所示: 刷接口作弊一般是越过登陆APP操作,直接调Server端的接口发数据,这些用户在APP的上报日志里面就不存在,那我们可以通过Flink将APP实时上报上来的新增用户写入Redis中,然后Server端将接口上报上来的用户与Redis里的用户进行比对,如果不在Redis里面则判为刷接口用户。 对于这个需求,得要求实时计算引擎能达到毫秒级延迟,否则会造成用户的误判和影响用户体验。为此我们选择了Flink作为实时计算引擎。 主要代码逻辑如下: //配置flink运行环境 val env =

Linux-PAM认证机制

女生的网名这么多〃 提交于 2020-01-08 15:20:50
Linux-PAM认证机制 https://www.cnblogs.com/marility/articles/9235522.html 鸟哥私房菜里面有这个地方 但是当时没注意. 早上弄vsftpd的时候掉坑里了 这会儿 百度一下 简单学习学习..这个博客挺好的 我学到了 ldd命令 还有 strings 命令linux 庞大而复杂 需要不停的学习和使用才可以. 在新主机更改用户密码的时候,经常会出现"passwd: Have exhausted maximum number of retries for service"的报错 [root@10-112-41-157 ~]# echo 'co4lgTdDD3iK7WYEJAyL0KT5pLXS0o3r' | passwd --stdin testpam Changing password for user testpam. passwd: Have exhausted maximum number of retries for service 实际之上,可以使用 chpasswd 命令更改解决,但非明文更改密码无法实现 1.PAM机制 在centos 6中用户的密码权限更变模块主要涉及到PAM(Pluggable Authentication Modules)认证机制,该机制由Sun公司提供,在Linux中,PAM是可动态配置的

QOS-QOS(服务质量)概述

泄露秘密 提交于 2020-01-08 10:27:54
QOS-QOS(服务质量)概述 2018年7月7日 20:29 概述及背景: 1. 引入: 传统IP网络仅提供“尽力而为”的传输服务,网络有可用资源就转发,资源不足时就丢弃 新一代IP网络承载了 语音、视频等实时互动信息,要求网络能提供有保证的服务质量 QOS允许用户在丢包、延迟、抖动和 带宽等方面获得可预期的服务水平 2.网络性能衡量的参数: 带宽: 是链路上单位时间所能通过的最大数据流量,其单位为bps 在一条端到端的链路中,最大 可用带宽等于路径上带宽最低的链路的带宽 延迟:是标识数据包穿越网络所用时间的指标 处理延迟 交换延迟:路由器查表时 排队延迟:数据包在出接口排队的延迟 传播延迟:数据在链路上传播的时间 抖动: 是指数据包穿越网络时延迟的变化,是衡量网络延迟稳定性的指标 是由于延迟的随机性造成的,主要原因是数据包排队延迟的不确定性 丢包率: 丢包是指数据包扎传输过程中的丢失,是衡量网络可靠性的重要指标 丢包的主要原因: 网络拥塞时,当队列满了后,后续的报文将由于无法入队而被丢弃 流量超过限制时,设备对其进行丢弃 丢包以丢包率作为衡量指标 丢包率=被丢包报文数量/全部报文数量 注意: 语音需要低带宽,低延时,低抖动的网络 数据流量需要高带宽,低丢包率的网络 视频流量需要高带宽,低延时,低抖动的网络 QOS不能参加先有的带宽,只能将现有的带宽优化。 3

微信公众号开发:自定义菜单

余生颓废 提交于 2020-01-08 09:18:44
前言 : 回顾之前的 微信公众号配置 和 消息处理 的内容,我们已经掌握了如何配置服务器与微信公众号建立连接,也掌握了通过消息管理的方式,对用户的信息进行处理,完成公众号消息回复功能,实现公众号与用户之间的完整对话。而在本文将针对自定义菜单做简单的开发应用,微信公众平台具有自定义菜单的功能。开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的回复信息或网页链接。自定义菜单接口将为公众账号的信息展示空间提供更多可能性。 说明 : 1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。 2、一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。 3、创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果。 类型 : 自定义菜单接口可实现多种类型按钮,如下: 1、click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互; 2、view

你的第一个人脸识别demo

落花浮王杯 提交于 2020-01-08 04:21:59
1、成为开发者 百度ai官网地址: http://ai.baidu.com/ STEP1 :点击百度AI开放平台导航右侧的 控制台 ,点击需要使用的AI服务项,使用百度账号登录。如还未持有百度账户,可以点击此处 注册百度账户 。 STEP2 :首次使用,登录后将会进入开发者认证页面,请填写相关信息完成开发者认证。注:(如您之前已经是百度云用户或百度开发者中心用户,此步可略过。) STEP3 :进入具体AI服务项的控制面板(如文字识别、人脸识别),进行相关业务操作。 2. 创建应用 创建好账号后,在正式调用AI能力之前,需要您创建一下应用,这个是调用服务的基础能力单元,不可或缺哦。在百度云控制台,已默认为您免费开通百度语音、文字识别、人脸识别、自然语言处理、图像审核、知识图谱服务六项服务。您可以选择您需要的服务,进入对应服务的控制台中。进入某个服务的控制台后,您将首先见到此服务的控制台概览页(以人脸识别为例), 如下图所示,点击创建应用: 点击上图中的「创建应用」,即可进入应用创建界面,如下图所示: 点击创建就会生成一个应用,包含API Key和SecretKey,这两个字段是获取accessToken的依据,是调用api接口的必备字段: 3、获取签名 获取accessToken:通过调用接口:https://aip.baidubce.com/oauth/ 2.0/token?

QOS-QOS(服务质量)概述

帅比萌擦擦* 提交于 2020-01-05 09:26:31
QOS-QOS(服务质量)概述 2018年7月7日 20:29 概述及背景: 1. 引入: 传统IP网络仅提供“尽力而为”的传输服务,网络有可用资源就转发,资源不足时就丢弃 新一代IP网络承载了 语音、视频等实时互动信息,要求网络能提供有保证的服务质量 QOS允许用户在丢包、延迟、抖动和 带宽等方面获得可预期的服务水平 2.网络性能衡量的参数: 带宽: 是链路上单位时间所能通过的最大数据流量,其单位为bps 在一条端到端的链路中,最大 可用带宽等于路径上带宽最低的链路的带宽 延迟:是标识数据包穿越网络所用时间的指标 处理延迟 交换延迟:路由器查表时 排队延迟:数据包在出接口排队的延迟 传播延迟:数据在链路上传播的时间 抖动: 是指数据包穿越网络时延迟的变化,是衡量网络延迟稳定性的指标 是由于延迟的随机性造成的,主要原因是数据包排队延迟的不确定性 丢包率: 丢包是指数据包扎传输过程中的丢失,是衡量网络可靠性的重要指标 丢包的主要原因: 网络拥塞时,当队列满了后,后续的报文将由于无法入队而被丢弃 流量超过限制时,设备对其进行丢弃 丢包以丢包率作为衡量指标 丢包率=被丢包报文数量/全部报文数量 注意: 语音需要低带宽,低延时,低抖动的网络 数据流量需要高带宽,低丢包率的网络 视频流量需要高带宽,低延时,低抖动的网络 QOS不能参加先有的带宽,只能将现有的带宽优化。 3

API接口知识小结

老子叫甜甜 提交于 2020-01-04 03:02:21
应用程序接口API(Application Programming Interface),是提供特定业务输出能力、连接不同系统的一种约定。这里包括外部系统与提供服务的系统(中后台系统)或后台不同系统之间的交互点。包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。 本文站在产品经理角度由浅入深讲述接口相关知识。如果不想被视为技术大佬眼中什么都不懂的需求搬运工,清楚接口的相关知识是很有必要的。 常见web接口是http/https协议的接口,多用于外部系统或前端系统的调用,因为此类接口地址要暴露在外部,所以必须对接口的安全性做较高程度的校验。还要一种基于开源rpc构建的跨系统接口调用接口方案,此类主要用于大公司内网各系统间的互相调用,此类接口服务治理能力更强,接口相应速度更块。以下内容以http接口为例展开的讨论。 一、接口请求方式类型 常见的http请求方式包括:get(查)、post(增),除此之外还有put(改)、delete(删)等。接口所属类型是由业务决定的。比如你打开淘宝,展示的首页内容就需要用到get接口,获取页面信息,你看中了宝贝要下单,添加你的收获地址时,用的则是post接口。而这两种也是其中最常见的两种接口类型 1)get类型接口 格式:请求数参数写在网址后面,用”?”连接,多个参数之间用”&”连接。 场景:get型接口用于获取信息

用户注册(一)之注册页面以及图形验证码

我怕爱的太早我们不能终老 提交于 2020-01-04 01:32:43
一、用户模型设计(用户表的设计)   1. 用户表字段分析     1)用户名     2)密码     3)手机号     4)邮箱     5)邮箱是否有效   2. 用户模型设计     django设计模型开发效率极高,内置了许多功能,包括权限验证等等,也有自定义的User模型。     因此我们需要继承已经写好的抽象模型类AbstractBaseUser,它有已经封装好的各种方法,约定俗成的凡是抽象模型类起名都以Abstract来开头,但是判断该模型类是否是抽象模型类的依据是,类中需要定义 class Meta: abstract = True     这才证明它是一个抽象模型类。               在我们继承了django自带的用户模型类之后,我们使用时进行扩充字段即可。   3. 在User这个app中的models.py页面来填写我们的需要的User模型类     1) 继承抽象模型类 ,添加用户新字段,重写管理器,方便我们创建用户,并制定我们的User模型使用我们自定义的管理器 # user/models.py 文件from django.db import models from django.contrib.auth.models import AbstractUser, UserManager as _UserManager # Create