token

《动手学深度学习》系列笔记 —— 文本预处理

*爱你&永不变心* 提交于 2020-02-14 20:46:06
文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,下面介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 分词 建立字典,将每个词映射到一个唯一的索引(index) 将文本从词的序列转换为索引的序列,方便输入模型 step1:读入文本 import collections import re def read_time_machine(): with open('/home/kesci/input/timemachine7163/timemachine.txt', 'r') as f: lines = [re.sub('[^a-z]+', ' ', line.strip().lower()) for line in f] return lines lines = read_time_machine() print('# sentences %d' % len(lines)) step2:分词 def tokenize(sentences, token='word'): """Split sentences into word or char tokens""" if token == 'word': return [sentence.split(' ') for sentence in sentences] elif token == 'char':

pikachu----CSRF 跨站请求漏洞

喜你入骨 提交于 2020-02-14 20:31:40
CSRF 在CSRF攻击场景中攻击者会伪造一个请求 (一个链接) 然后欺骗目标用户点击,用户一旦点击了这个请求,整个攻击也就完成了 所以CSRF攻击也被称为“one click“攻击 例子: 想要修改lucy购物地址信息 lucy必须处于登录的状态,lucy必须点击攻击链接 xss和csrf区别: 1.csrf(get) 登录之后,可以进入修改个人信息 然后进行抓包 将get请求修改为攻击者伪造的链接 在登录状态下点击,就可以修改用户信息 /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=hebei&email=lucy%40pikachu.com&submit=submit 2. csrf (post) 修改信息后,抓包 如果是POST型的,所有参数在请求体中提交,我们 不能通过伪造URL的方式进行攻击 这里的攻击方式跟XSS中POST类型是一样的, 攻击者可以搭建一个站点 ,在站点上做一个表单, 诱导lucy点击这个链接,当用户点击时,就会自动向存在CSRF的服务器提交POST请求修改个人信息。、 编写一个post.html页面,代码如下所示,本文把此页面放到 Kali 的/var/www/html/pikachu/doge_csrf下,然后启动 apache 服务

学成在线(第16天)

妖精的绣舞 提交于 2020-02-13 12:38:01
用户认证需求分析 用户认证需求分析 用户认证与授权 什么是用户身份认证? 用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认 证表现形式有:用户名密码登录,指纹打卡等方式。 什么是用户授权? 用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没 有权限的资源将无法访问,这个过程叫用户授权。 单点登录需求 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。 SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 下图是SSO的示意图,用户登录学成网一次即可访问多个系统。 第三方认证 什么是第三方认证(跨平台认证)? 当需要访问第三方系统的资源时需要首先通过第三方系统的认证(例如:微信认证),由第三方系统对用户认证通 过,并授权资源的访问权限。 用户认证技术方案 单点登录技术方案 分布式系统要实现单点登录,通常将认证系统独立抽取出来,并且将用户身份信息存储在单独的存储介质,比如: MySQL、Redis,考虑性能要求,通常存储在Redis中,如下图: 单点登录的特点是: 1、认证系统为独立的系统。 2、各子系统通过Http或其它协议与认证系统通信,完成用户认证。 3、用户身份信息存储在Redis集群。

词法分析器

女生的网名这么多〃 提交于 2020-02-13 05:30:07
1. 词法分析器 函数 skip_one_line: 跳过一行, 会在skip_comment中注释为//的时候调用 skip_comment: // 和 /**/ skip_blanks: 跳过空白行, 会在skip_comment处理完注释之后调用, 同时在get_next_token这个核心的词法分析器的接口函数中调用防止获取到的token含有空白字符 to_next_char: 将parser中的next_char_ptr指向的字符赋给cur_char, 并++next_char_ptr to_next_char_if: 和to_next_char类似, 返回类型为bool类型, 当nextchar是我们期望的值的时候调用to_next_char并返回true, 否则直接返回false peek_next_char: *parser->next_char_ptr peek_cur_char: parser->cur_char get_next_token: 给语法分析器调用的函数, 在get_next_token函数中主要由一个伪while循环(之所以是伪while循环, 是因为在while的结尾有return语句), 里面还有continue语句, 主要在遇到了注释, 调用了skip_comment之后continue继续获取Token, 因为注释并不是我们的token,

微信分享类

眉间皱痕 提交于 2020-02-12 18:26:25
<?php /** * 微信分享相关 * * @since 2017-07-15 */ use Yaf\Registry; class Service_WxShare{ private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key

flask-restful

夙愿已清 提交于 2020-02-12 12:09:49
from flask import Flask,jsonify,g #导入restful类库 from flask_restful import Api,Resource from flask_httpauth import HTTPBasicAuth from itsdangerous import TimedJSONWebSignatureSerializer as Serializer app = Flask(__name__) #创建认证对象 auth = HTTPBasicAuth() #设置认证的回调函数,需要认证时自动回调,成功返回true,失败返回flase @auth.verify_password def verify_password(username_or_token,password): if username_or_token == 'bill' and password == '123456': return True else: if check_token(username_or_token): return True return False #认证的错误显示 @auth.error_handler def unauthorized(): return jsonify({'error':'认证失败'}),403 #生成token app

redis数据库

笑着哭i 提交于 2020-02-12 08:18:16
redis数据库 redis数据库 为什么要学习redis ? 1 2 3 4 5 6 7 8 9 "" " 1、redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高 2、在内存值配置数据库使用,而不直接使用内存,redis存储的数据是可以管理的 3、memcache也是内存数据库,且django默认采用的就是memcache数据库,用redis替换memcache的路由很简单,后者更强大 redis支持更多的数据类型 redis自带缓存机制,出现数据库系统崩溃数据也是可以有找回的功能 redis可以主动完成数据持久化(自带数据持久化功能) redis的数据过期时间机制也可以自身完成 "" " redis安装 redis数据类型 ? 1 注:在官网安装系统版本,下载对应安装包安装即可 ? 1 2 3 4 5 6 7 8 9 "" " 支持的数据类型:String、Hash、List、Set、Sorted Set ​ String:存储其他类型不能存的所有数据 Hash:存储 key-value 形式数据,类似于字典 List:存储 一系列有序value 形式数据,列表(数组) Set:存储 一系列无序value 形式数据,集合 Sorted Set:存储 有排列标号value 形式数据,排行 "" " 字符串类型 ? 1 2 3 4 5 6 7 "" "

jwt验证

你离开我真会死。 提交于 2020-02-11 14:52:14
什么是JWT   Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准( (RFC 7519 ).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。 Token认证和Session认证的区别    传统的session认证     我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为根据http协议,我们并不能知道是哪个用户发出的请求,所以为了让我们的应用能识别是哪个用户发出的请求,我们只能在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的应用就能识别请求来自哪个用户了,这就是传统的基于session认证。 但是这种基于session的认证使应用本身很难得到扩展,随着不同客户端用户的增加,独立的服务器已无法承载更多的用户,而这时候基于session认证应用的问题就会暴露出来.  

使用Struts 2防止表单重复提交

喜欢而已 提交于 2020-02-11 11:49:56
用户重复提交表单在某些场合将会造成非常严重的后果。例如,在使用信用卡进行在线支付的时候,如果服务器的响应速度太慢,用户有可能会多次点击提交按钮,而这可能导致那张信用卡上的金额被消费了多次。因此,重复提交表单会对你的系统带来逻辑影响,必须采取一些措施防止这类情况的发生。   用户重复提交同一个HTML表单的原因有: 一、快速多次点击了提交按钮;二、提交表单后按下浏览器的刷新按钮。 设置Struts 2的预防表单重复提交的功能 Struts 2已经内置了能够防止用户重复提交同一个HTML表单的功能。它的工作原理:让服务器生成一个唯一标记,并在服务器和表单里各保存一份这个标记的副本。此后,在用户提交表单的时候,表单里的标记将随着其他请求参数一起发送到服务器,服务器将对他收到的标记和它留存的标记进行比较。如果两者匹配,这次提交的表单被认为是有效的,服务器将对之做出必要的处理并重新设置一个新标记。随后,提交相同的表单就会失败,因为服务器上的标记已经重置。   Struts 2标签中的token标签,可以用来生成一个独一无二的标记。这个标记必须嵌套在form标签中使用,它会在表单里插入一个隐藏字段并把标记保存到HttpSession对象里。toke标签必须与Token或Token Session拦截器配合使用,两个拦截器都能对token标签进行处理。Token拦截器遇到重复提交表单的情况

[牛客网中级项目]第四课 注册 登录 浏览 安全性

自作多情 提交于 2020-02-10 18:08:41
[牛客网中级项目]第四课 注册 登录 浏览 安全性 目录 文章目录 [牛客网中级项目]第四课 注册 登录 浏览 安全性 1. 注册 1.1 注册实现功能: 1. 用户名合法性检测 2. 密码长度要求 3. 密码Salt加密,密码强度检测 4. 用户邮件/短信激活 1.2 代码功能实现: UserDAO部分 UserService部分 LoginController部分 2. 登录 2.1 登录实现功能: 1. 服务器密码校验/三方校验回调,token登记 1.1 服务器端token关联userid 1.2 客户端存储token 2. 服务端/客户端token有效期设置 2.2 代码功能实现: LoginTicketDAO部分 UserService部分 LoginController部分 3. 浏览页面(重点) 3.1注册实现功能: 1. 客户端:带token的HTTP请求 2. 服务端: 1.根据token获取用户id 2.根据用户id获取用户的具体信息 3.用户和界面访问权限处理 4.渲染界面/跳转页面 3.2代码功能实现: 拦截器(Interceptor) 未登录跳转 注册拦截器 4.用户数据安全性 多种渠道: 1.HTTP注册页 2.公钥加密私钥解密,支付宝h5页面的支付密码加密 3.用户密码salt防止破解(CSDN,网易邮箱未加密密码泄露) 4.token有效期 5