cookie

网站常见的鉴权认证方式有哪几种?

大憨熊 提交于 2019-12-05 15:08:19
一、什么是鉴权 鉴权(authentication)是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。这种方式的弱点十分明显:一旦密码被偷或用户遗失密码,情况就会十分麻烦,需要管理员对用户密码进行重新修改,而修改密码之前还要人工验证用户的合法身份。 为了克服这种鉴权方式的缺点,需要一个更加可靠的鉴权方式。目前的主流鉴权方式是利用认证授权来验证数字签名的正确与否。 二、网站常见的鉴权认证方式 Session机制 JWT机制 Auth2机制 2.1Session认证的原理 解析:第一次登陆网站的时候,需要填写用户名和密码,之后push到服务器上,因为是第一次注册,服务器先去查看一下用户名是否被人用过,如果已经被人使用,需要重新注册一个用户名,若没有,则可以进行创建。创建有两种方法:第一种是把用户名和密码直接保存在数据库中,这种方法对于服务器来说,有风险,一旦数据库密码被攻破了,数据就会被泄露。第二种方法:数据库不存储明文密码,只存储用户名之后生成一个随机数,之后输入的密码和随机数通过SHA256(单向散列函数)进行处理,把密码加随机数生成一个字符串,把这个字符串(secret)和随机数(salt)和用户名(username)存储起来

Servlet 入门

﹥>﹥吖頭↗ 提交于 2019-12-05 14:46:55
Servlet: server applet 运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到( tomcat识别 )的规则。 自定义一个类,实现 Servlet 接口,复写方法。 快速入门 创建 JavaEE 项目 定义一个类,实现 Servlet 接口 package cn.web; import javax.servlet.*; import java.io.IOException; public class ServletDemo1 implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { } @Override public String getServletInfo() { return

nodejs之express详解

心不动则不痛 提交于 2019-12-05 14:44:58
express github地址: https://github.com/expressjs/express 文档地址: http://expressjs.com/en/4x/api.html#router https://www.expressjiaocheng.com/doc-x4.html#app express 的几大模块: express()、Application、Request、Response、Router 英语官网: http://expressj s. com/ 中文官网: http://www.expressj s.com.cn/ ht t p: //www. expressjiaocheng . com ********安装express********** 1.cd到项目里 2.创建package.json: npm init --yes package.json说明 https://blog.csdn.net/zmrdlb/article/details/53190696 3.安装 Express 框架,npm install express --save --save 参数表示吧express模块写到package.json 中,表示自动修改 package.json 文件,自动添加依赖项。 *****动态路由: 浏览器请求:http://192

Nodejs之Express框架

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-05 14:44:37
Nodejs之Express框架 Express 简介 安装 Express 第一个 Express 框架实例 请求和响应 路由 静态文件 GET 方法 POST 方法 文件上传 Cookie 管理 以下内容转载编辑自 菜鸟教程 以下代码已上传至GitHub: https://github.com/tsora-c/node-express Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。 安装 Express 安装 Express 并将其保存到依赖列表中: $ cnpm install express -- save 以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的: body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL

爬虫-上

非 Y 不嫁゛ 提交于 2019-12-05 14:38:02
爬虫基础 网络爬虫   网络爬虫(又称为网页 蜘蛛 ,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取 万维网 信息的程序或者脚本。 另外一些不常使用的名字还有 蚂蚁 、自动索引、模拟程序或者 蠕虫 。 #1、什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。 #2、互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是存放于一台台计算机上的,而将计算机互联到一起的目的就是为了能够方便彼此之间的数据共享/传递,否则你只能拿U盘去别人的计算机上拷贝数据了。 #3、什么是上网?爬虫要做的是什么? 我们所谓的上网便是由用户端计算机发送请求给目标计算机,将目标计算机的数据下载到本地的过程。 #3.1 只不过,用户获取网络数据的方式是: 浏览器提交请求->下载网页代码->解析/渲染成页面。 ``` #3.2 而爬虫程序要做的就是: 模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中   #3.1与3.2的区别在于: ``` 我们的爬虫程序只提取网页代码中对我们有用的数据 总结爬虫 #4.1 爬虫的比喻: 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据 ```

Linux 部署 rabbitMQ集群

a 夏天 提交于 2019-12-05 14:26:34
1. 部署Erlang 1.1 RabbitMQ依赖于Erlang,版本对应请查看 https://www.rabbitmq.com/which-erlang.html 1.2 下载安装Erlang # 添加epel扩展源 yum install epel-release # 先删除可能存在的erlang(非必须) yum list erlang yum remove erl* # 清空和更新安装源(非必须) yum clean yum update # 参考 https://github.com/rabbitmq/erlang-rpm -> Erlang 21.x -> o use Erlang 21.x on CentOS 6 # 配置安装源 vim /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabbitmq-erlang baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6 gpgcheck=1 gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc repo_gpgcheck=0 enabled=0 # 安装 yum

node.js知识点总结

你离开我真会死。 提交于 2019-12-05 14:01:39
模块化: 系统模块:http,url,fs。 assert:断言测试 buffer:二进制数据 c/c++addons: child processes:子进程 Crypto:加密(MD5,sha256) dns:域名解析 domain:舍弃 errors:各种错误提示 events:事件 globals: net:各种各样的网络操作 OS:跟操作系统的信息 Path:处理文件路径 Stream:流操作 Timers:定时器 util:工具类 vm:虚拟机 zlib:压缩操作 nodeJS的模块很多,也很实用。我们会慢慢介绍 模块组成: 模块的引入: [x] require:请求;引入模块的;在nodeJS中使用这个,对于自定义的模块引入的时候需要加上./的标志。因为这个可以告诉它这个是nodeJS自己的系统模块,还是你自己写的。如果自己写的模块不想写./,那就把自己的模块加入到node_modules文件夹。require一般先从系统模块找,找不到再去node_modules去找。 [x] module:模块。如果对外输出大量的东西和变量。module.exports={};通俗的说就是批量输出的。 [x] exports:输出;对外想输出东西加上exports这个变量。例如:exports.a=12;单个输出 [x] module.exports == exports是成立的。

nodeJS的知识点

人走茶凉 提交于 2019-12-05 13:55:19
模块化: 系统模块:http,url,fs。 assert:断言测试 buffer:二进制数据 c/c++addons: child processes:子进程 Crypto:加密(MD5,sha256) dns:域名解析 domain:舍弃 errors:各种错误提示 events:事件 globals: net:各种各样的网络操作 OS:跟操作系统的信息 Path:处理文件路径 Stream:流操作 Timers:定时器 util:工具类 vm:虚拟机 zlib:压缩操作 nodeJS的模块很多,也很实用。我们会慢慢介绍 模块组成: 模块的引入: [x] require:请求;引入模块的;在nodeJS中使用这个,对于自定义的模块引入的时候需要加上./的标志。因为这个可以告诉它这个是nodeJS自己的系统模块,还是你自己写的。如果自己写的模块不想写./,那就把自己的模块加入到node_modules文件夹。require一般先从系统模块找,找不到再去node_modules去找。 [x] module:模块。如果对外输出大量的东西和变量。module.exports={};通俗的说就是批量输出的。 [x] exports:输出;对外想输出东西加上exports这个变量。例如:exports.a=12;单个输出 [x] module.exports == exports是成立的。

Nodejs Express 开发必备知识点

北城余情 提交于 2019-12-05 13:54:05
npm 常用指令 npm install <name> 安装Node.js依赖包 例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6 npm install <name> -g 将包安装到全局环境中 但是代码中,直接通过require()的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm命令 npm install <name> --save 安装的同时,将信息写入package.json中 项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包,所以移交项目时不用吧node_modules文件一起了 这样代码提交到github时,就不用提交node_modules这个文件夹了。 npm init 会引导你创建一个package.json文件,包括名称、版本、作者这些信息等 npm remove <name>移除 npm update <name>更新 npm ls 列出当前安装的了所有包 npm root 查看当前包的安装路径 npm root -g 查看全局的包的安装路径 npm help 帮助

【转】单点登录的三种实现方式

孤街醉人 提交于 2019-12-05 13:49:20
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下两个: 存储信任 验证信任 如果一个系统做到了开头所讲的效果,也就算单点登录,单点登录有不同的实现方式,本文就罗列我开发中所遇见过的实现方式。 以Cookie作为凭证媒介 最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。 用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。 Auth via cookie 不难发现以上方式把信任存储在客户端的Cookie中,这种方式很容易令人质疑: Cookie不安全 不能跨域实现免登 对于第一个问题,通过加密Cookie可以保证安全性,当然这是在源代码不泄露的前提下。如果Cookie的加密算法泄露