captcha

Django+Celery 执行异步任务和定时任务

人盡茶涼 提交于 2020-04-28 05:53:57
celery是一个基于python开发的简单、灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线程上执行任务调度。采用典型的生产者-消费者模型,主要由三部分组成: 1. 消息队列broker:broker实际上就是一个MQ队列服务,可以使用redis、rabbitmq等作为broker 2. 处理任务的消费者workers:broker通知worker队列中有任务,worker去队列中取出任务执行,每一个worker就是一个进程 3. 存储结果的backend:执行结果存储在backend,默认也会存储在broker使用的MQ队列服务中,也可以单独配置用何种服务做backend flask,django是同步框架,所有的请求以队列形式完成。这样的话效率极差,用户体验不好,为了解决这个问题引入celery异步方式在后台执行这些任务(这里使用到了redis,3.0以下兼容性更好) 1,安装依赖 pip install celery pip install celery -with- redis pip install django -celery 2,settings.py设置 # 配置celery import djcelery djcelery.setup_loader() BROKER_URL = ' redis://127.0.0.1:6379 '

captcha ~ 生成验证码图片

有些话、适合烂在心里 提交于 2020-04-26 14:57:03
验证码在我们的世界中可以保护我们的信息安全的一个保障之一 这就是生成验证码的代码 # 导报 from captcha.image import ImageCaptcha #验证码的包 from PIL import Image import random import time #系统模块 import os #定义随机方法 def random_captcha():   #做一个容器   captcha_text = []   for i in range(4):     #定义验证码字符 指定随机     c = random.choice(['0','1','2','3','4'])     captcha_text.append(c)  #返回一个随机生成的字符串 return ' '.join(captcha_text) #字符串中间没有空格 #生成验证码方法 def gen_capthca():   #定义图片对象   image = ImageCaptcha()   #获取字符串   captcha_text = random_captcha()   #生成图像   captcha_image = Image.open(image.generate(captcha_text)) return captcha_text,captcha_image if __name__

安全性测试入门 (五):Insecure CAPTCHA 验证码绕过

喜欢而已 提交于 2020-04-26 14:56:11
本篇继续对于安全性测试话题,结合DVWA进行研习。 Insecure Captcha不安全验证码 1. 验证码到底是怎么一回事 这个Captcha狭义而言就是谷歌提供的一种用户验证服务,全称为:Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)。 很巧妙的是,Captcha单独成词的意思就是,抓到你了哟^_^ Captcha在各种海外网站被广泛用于用户验证。而在国内,由于众所周知的原因,我们不用谷歌的服务,很多接口平台都可以提供类似服务。 比如apishop的这个四位验证码服务接口: 那么验证码到底在用户验证的过程中起到什么样的作用呢? 验证码最大的作用就是防止攻击者使用工具或者软件自动调用系统功能 就如Captcha的全称所示,他就是用来区分人类和计算机的一种图灵测试,这种做法可以很有效的防止恶意软件、机器人大量调用系统功能:比如注册、登录功能。 我们前面讲到的Brute Force字典式暴力破解,就必须要使用工具大量尝试登录。如果这个时候系统有个 严密的 验证码机制,此类攻击就无计可施了。 其工作流程如下所示: 2. 验证码绕过 为什么前文要在验证码机制前面黑体强调他要是 严密的 ,那当然是如果验证码机制设计不得当,绕过它也只是分分钟的事情。。

Flask实战第41天:发送短信验证码

白昼怎懂夜的黑 提交于 2020-04-25 08:01:54
本项目使用的短信运营商是阿里云。使用淘宝账号登录阿里云控制台。在“产品与服务”中搜索“短信”进入短信服务 获取AccessKey 输入子账户用户名 权限选择管理短信服务 签名管理: 申请签名 模板管理 :设置模板 下载发送短信Python SDK 下载的压缩包为:dysms_python.zip 加压后,进入项目虚拟环境,进入到dysms_python目录,进行安装 在项目工具包utrils新建个python package命名为aliyunsms 把dysms_python目录中的以下文件或目录拷贝到aliyunsms 把demo_sms_send.py修改名字为sms_send.py,里面的代码修改后为 import sys from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest from aliyunsdkcore.client import AcsClient import uuid from aliyunsdkcore.profile import region_provider import json from aliyunsdkcore.http

.NET MVC5之网站安全

坚强是说给别人听的谎言 提交于 2020-04-24 14:32:54
XSS(脚本攻击) 使用AntiXSS Library的AntiXssEncoder 或 public static String SafeHtml ( this string helper , string str ) { var filterString = str == null ? "" : str . Trim (); if ( string . IsNullOrWhiteSpace ( filterString )) return null ; var regex = new Regex ( @" < (?! br | \/ ? p | style | \/ ? span ) [^ > ] * > " ); filterString = regex . Replace ( filterString , "" ); return filterString ; } CSRF或XSRF(跨网站伪造请求) 写入后端的数据都是用POST 限制POST的Action不接受GET 在服务器端判断数据的来源,Html.AntiForgeryToken() 加密与解密 增加密码的复杂度:长度至少8位,至少有一个大小写英文,至少包含一个数字 密码存储:哈希(hash)加密后存储 窗体验证原则 使用https 使用http post 对数据校验 不要使用隐藏字段 不要提示过多的错误信息

前后端登录注册之node剖析与token的使用状态

落花浮王杯 提交于 2020-04-24 09:23:21
登录模块功能详解   1、用户名密码的格式验证       由前端完成,根据需求自行决定,不加叙述       2、点击提交按钮思路详解        前端将用户名 以及加密后的密码还有验证码输入的内容统一发给后端 由后端和数据库的数据进行比对        将比对的结果返回给前端    3、密码加密及解密技术 使用插件包------jsencrypt 和 node-jsencrypt         这里我么利用了阿里的一个加密软件,此软件作用是生成两个不一样的key然后相当于一个键值对可以通过这两个key分别进行加密解密,        其中一个在前端使用加密另一个在后端解密,这样的话就会让安全性提高 具体代码如下         1 // 此模块是根据jsencrypt封装一个加密过程 2 3 import JSEncrypt from ' jsencrypt ' 4 5 export function jsEncrypt(str) { 6 // 实例这个方法 7 let encrypt = new JSEncrypt(); 8 // 根据一款软件 随机生成一段key值 这个key值是两个相互的 前后端各有一个 然后我们根据这个key值可以进行加密解密处理 9 let key =

Vue_注册登录(短信验证码登录)

左心房为你撑大大i 提交于 2020-04-24 08:23:54
一、前言 1、动态获取图片验证码 2、实现手机验证码登录(工具准备) 3、手机验证码登录(后台实现) 3、前台实现 二、主要内容 1、动态获取图片验证码 (1)请求的接口如下,返回的是一张svg的图片 ## 获取一次性验证码 ### 请求URL: http: // localhost:3000/captcha ### 请求方式: (2)初次显示图片,可以直接在image中的src中请求路径直接得到 <!-- 第一次显示直接请求http://localhost:4000下面的 --> <!-- 点击图片的时候要更新图片,注册一个点击事件 --> < input type ="text" maxlength ="11" placeholder ="验证码" v-model ="captche" > < img class ="get_verification" src ="http://localhost:4000/captcha" alt ="captcha" @click ='getCaptcha' > (3)点击图片的时候更新,methods中调用方法 // 获取图片验证码 getCaptcha(event){ console.log( this ) console.log(event.target) event.target.src = "http://localhost

Django学习笔记(9)—— 开发用户注册与登录系统

独自空忆成欢 提交于 2020-04-18 12:29:41
一,项目题目: 开发用户注册与登录系统   该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识。   在 Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录 ,这篇博文中,我完成了使用Django自带的Auth模型下的User模型而重新建立了自己的用户模型。有兴趣的可以看一下。 二,项目需求: 开发一个简单的用户登录与注册系统 要求: 有用户注册页面 有用户登录页面 有用户登录成功的页面 有注册和登录的验证码提示    三,编码规范需求: 编码规范需求:15% 1. 代码规范遵守pep8 (https://python.org/dev/peps/pep-0008/) 2. 函数有相应的注释 3. 程序有文档说明文件(README.md参考:https://github.com/csrftoken/vueDrfDemo) 4. 程序的说明文档必须包含的内容:程序的开发环境(django版本)、程序的实现的功能、程序的启动方式、登录用户信息、程序的运行效果 5. 程序设计的流程图:    四,项目思路 4.1:设计数据模型 数据库模式设计 设置数据库为MySQL 数据库迁移 4.2:admin后台 在admin中注册模型 创建超级管理员 4.3:url路由和视图 路由设计 架构初步视图

手机验证码如何通过JS实现

久未见 提交于 2020-04-18 11:42:24
前言 现在基本上各种手机APP注册都会用到手机验证码,包括一些PC端网站也会使用手机号作为唯一标识验证! 恰巧,XX的老板,让其开发一个用户注册的功能,并且强制用户注册绑定手机,美其名曰为了提升安全性,呵呵哒,就是为了多撸一点用户信息。 案例 一般来说,发送手机验证码不能过于频繁,前端发送按钮点击后一般会有一个60秒倒计时的功能。也就是说,如果用户点击发送一直没有收到验证码,只能60秒之后才可以进行重发。 那么问题来了,如果用户绕过前端,直接向后台API发送短信请求,然后写个无限循环脚本,相信不久你的短信账户就会发来预警提示短信(一般来说大的短信商都有预警设置功能)。 其实很简单,你只需要F12,查看发送请求就可以查找出后台请求地址,然后你可以在控制台输入相关JS代码,执行个十万遍,是不是很爽? 这里以七牛云为测试案例,打开注册页面,F12进入调试模式,输入手机号,手动点击发送,获取其短信发送后台请求地址。下面是七牛云的一个短信发送请求,撸主测试了一下,显然没有达到撸主的预期,毕竟是大厂,防御措施还是做的很牛逼的。 以下是JS脚本,复制粘贴到控制台回车就可以执行: var data = {"operation":1,"is_voice":false,"mobile_number":"17762018888","captcha_type":2}; for (var i = 0; i

Django学习笔记(17)——BBS+Blog项目开发(1)验证码功能的实现

这一生的挚爱 提交于 2020-04-18 00:37:38
  本文主要学习验证码功能的实现,为了项目BBS+Blog项目打下基础。   为了防止机器人频繁登陆网站或者破坏分子恶意登陆,很多用户登录和注册系统都提供了图形验证码功能。   验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。   图形验证码的历史比较悠久,到现在已经有点英雄末路的味道了。因为机器学习、图像识别的存在,机器人已经可以比较正确的识别图像内的字符了。但不管怎么说,作为一种防御手段,至少还是可以抵挡一些低级入门的攻击手段,抬高了攻击者的门槛。 验证码功能实现方法1——完整的验证码实现流程 1, 验证码前端画布页面生成   那么下面我们将依次生成验证码这种画布,左边框是输入验证码的内容,右边框是设计验证码。 1.1,直接读取图片   首先,我们需要了解读取图片的方法。 # 方式一 with open('kd1.jpg', 'rb') as f: data = f.read() return HttpResponse(data)