- 博客(31)
- 收藏
- 关注
原创 git操作
(简单练习上面的)觉得重要的前面加*git下载及查看www.git-scm.com 下载git --version 查看版本配置及查看git config --global user.name "用户名"git config --global user.email "邮箱"git config -l 查看配置git 查看帮助创建本地仓库3种方式1. cd 文件夹, git...
2018-10-17 00:34:01 216
原创 爬虫环境配置-后续会不断更新
alembic==0.9.9asn1crypto==0.24.0attrs==18.1.0Automat==0.7.0backcall==0.1.0blinker==1.4brotlipy==0.7.0certifi==2018.4.16cffi==1.11.5chardet==3.0.4click==6.7constantly==15.1.0cryptography==2...
2018-10-14 23:23:55 249
原创 js逆向-renren为例
"""逆向js是一个什么过程:由结果往前推,得到这些结果需要哪些条件,然后准备好这些条件,用代码去模拟浏览器js生成结果的过程,获得想要的 结果分析网页:密码加密,参数较多 -> 移动端 :密码还是加密,但参数较少。另外:移动端登录之后,登录状态保持,能直接登录网页端破解移动端:post 请求,要携带4个参数才能登录成功,寻找4个参数来源路径,然后通过逆向js将符合条件...
2018-08-16 18:00:40 2690
原创 js的逆向解析
过程: 知道如何寻找登录的接口 知道如何确定js的位置 知道如何观察js的执行过程 知道js的执行方法1. 确定网站的登录的接口登录的form表单中action对应的url地址 通过抓包可以发现,在这个url地址和请求体中均有参数,切换到手机版,参数的个数少,分析js2. 确定js的位置通过点击按钮,然后点击Event Lis...
2018-08-05 22:45:23 14752 2
原创 jsonpath
JsonPath 作为一种信息抽取类库,功能很强大。它是从JSON文档中抽取指定信息的工具,用来解析多层嵌套的json数据,不需要再像之前一层一层才能获取自己想要的数据,而是可以直接去获取,让获取数据变得极其简单。import requestsimport jsonimport jsonpathurl ='https://m.douban.com/rexxar/api/v2/sub...
2018-08-05 00:44:36 367
原创 utf-8 和 unicode之间关系
ascii、latin、gbk、Big5、unicode都是字符集,用字节来表示字符,除了ascii是1个字节表示字符外,其它都是使用2个字节表示字符。为了统一,国际标准化组织 ISO,制定unicode用2个字节来统一全世界所有字符。美国人不同意,因为unicode是2个字节,相比他之前的ascii的1个字节,增加了1倍的储存空间。于是国际标准化组织提出了一种方案,用UTF-8对un...
2018-08-02 10:14:16 4753 2
原创 页面静态化
页面静态化,有两点什么时候去运用页面静态化:就是对于那些数据不经常更新的页面,我们可以对这些页面进行静态化处理 页面静态化的好处就是:减少请求次数和提高响应速度,这是执行页面静态化的两个好处。那么在django当中,如何进行页面静态化?1.shell方法生成静态文件2.定时器生成静态文件3.脚本生成静态文件4.admin站点方式生成以上4种方法都是直接或间接调用下面的方...
2018-07-31 00:02:34 751
原创 状态保持session与JWT
1. session认证,token认证:登录状态保持2. jwt是基于token的一种认证形式3.session:session是保存在服务器端的,对服务器开销大 拓展,部署多台服务器,访问不同服务器都要验证登录 CSRF:cookie被截获,用户信息会泄露jwt:jwt的token是保存在浏览器端的,不影响服务...
2018-07-29 00:07:40 1214
原创 django工程创建模型类前的配置(后续会更新)
"""Django settings for goshopping project.Generated by 'django-admin startproject' using Django 1.11.11.For more information on this file, seehttps://docs.djangoproject.com/en/1.11/topics/settin...
2018-07-26 23:57:14 214
原创 docker在Ubuntu下安装
(先ping一下百度或其他网站,确认一下网速,网速不佳的话运行sudo apt update会报错)- 卸载旧版本 #如果之前安装过docker.io,没有跳过 sudo apt-get remove docker docker-engine docker.io - 安装AUFS 内核驱动模块 #aufs是docker存储驱动推荐的内核模块,如果系统没有安装,执行下面脚本 ...
2018-07-24 20:48:15 355
原创 类视图
在Django中可以使用类来定义一个视图,称为类视图:使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。优点:代码可读性好通过类的继承,实现代码的复用,简化代码class Registerview(View): def get(self, request): print('get') return HttpResponse('get') ...
2018-07-06 23:02:07 2677
原创 项目部署到服务器
远程登录:如遇到下面的情况,将黄色框的内容复制粘贴运行一遍1. sudo apt-get update2. apt-get install mysql-server3. apt-get install libmysqlclient-dev4. sudo apt-get install redis-server5. locale6. export LC_ALL=C7. pip install vir...
2018-07-03 00:44:12 507
原创 手机端访问pc端网页
手机访问不到自己写的网页以及大小排版不合适,需要留意两点。 手机访问不到自己写的网页: 虚拟机把NAT模式改成桥接模式。虚拟机-->设置-->网络适配器-->桥接模式-->重启。 大小排版在手机端不合适: 在head标签里加 <meta name=”viewport” content=”width=devi...
2018-06-26 21:50:02 1047 2
原创 请求勾子after_request
after_request:如果没有抛出错误,在每次请求后执行 接受一个参数:视图函数作出的响应在此函数中可以对响应值在返回之前做最后一步修改处理需要将参数中的响应在此参数中进行返回 # 在这里增加请求勾子(请求勾子的作用:访问任何一个请求都会增加),在请求之后设置cookie(对返回值做进一步处理,增加随机值) # 我们无法判断用户第一次访问网站时,是哪一个页面,不能写死给...
2018-06-24 23:26:54 2418
原创 密码加盐
密码不能以明文形式保存到数据库中,否则数据泄露密码就会被知道。而一般的加密方式由于加密规则固定,很容易被破解,安全系数不高。密码加盐的加密方式,能很好的解决这一点。密码加盐:密码加盐里包含随机值和加密方式。随机值是电脑随机产生的,并且以随机的方式混在原始密码里面,然后按照加密方式生成一串字符串保存在服务器。换言之,这个是单向的,电脑也不知道客户的原始密码,即使知道加密方式,反向推出的加密前的字符串...
2018-06-23 11:13:19 3632
原创 防止跨站攻击——CSRFToken
怎么防止跨站攻击:表单:在 Form 表单中添加一个隐藏的的字段,值是 csrf_token。非表单:在ajax获取数据时,添加headers:{ 'X-CSRFToken':getCookie('csrf_token') }。原理:在浏览器访问网站A时,网站A设置cookie会增加随机值csrf_token,这个值是随机的。返回给浏览器时,cookie会储存在浏览器,同时会把csrf_token...
2018-06-22 22:44:42 12838 5
原创 CSRF跨站伪造请求
什么是CSRF跨站伪造请求:用户登录安全网站A成功后,然后在没有退出登录的情况下,又登录了不安全网站B,点击一些链接,因为是用的同一浏览器,不安全网站B可以通过浏览器伪装成该用户身份向网站A发出请求做一些非法操作(隐藏在链接里面)。网站A:@app.route('/transfer', methods=["POST", "GET"]) def transfer(): # 从...
2018-06-22 09:42:37 353
原创 manager,config和info代码抽取
在整个项目文件夹中,除了启动文件 manage.py 和配置文件 config.py 放在根目录,其他具体业务逻辑文件都放在一个单独的文件夹info内,与 manage.py 同级。manage.py管理程序启动import loggingfrom flask_script import Managerfrom flask_migrate import Migrate, Migr...
2018-06-20 23:49:05 496
原创 Blueprint延伸——文件夹
上一篇是怎么通过单独的模块实现Blueprint,来将单独的功能视图函数放在里面。但这样的在实际并不实用,这节讲述如何将模块的抽取到一个包里面,即文件夹。"""1. 导入蓝图, 创建蓝图对象,导入子模块2. 使用蓝图对象实现路由3. 在app创建的地方注册路由"""文件夹user里面有模块 __init__.py , views.py :__init__.py# 1. 导入蓝图, 创建蓝图...
2018-06-15 19:55:59 427
原创 Blueprint
作用:对项目进行模块化,方便对代码的管理,把一部分其它功能的视图函数抽取到其它模块上,而要让这些视图函数也能运行,就要用蓝图来实现。如下面,将manager里面的视图函数抽取到cart模块里面。实现步骤:1. 导入蓝图, 并创建蓝图对象2. 使用蓝图对象实现路由3. 在app创建的地方注册蓝图cart.py模块:# 1. 导入蓝图, 并创建蓝图对象from flask import Blue...
2018-06-14 23:54:13 382
原创 relationship:关系引用和反向关系引用
db = SQLAlchemy(app)# relationship: 增加了关系引用,为了查询方便. 由原先的2次查询, 改为了1次查询# 一个角色对应多个用户:一的一方(Role)定义关系引用和反向引用. 多的一方(User)定义外键# users 是为了当前模型方便查询定义的. backref='role', 这里的role是给关联模型提供的查询属性class Role(db.Mode...
2018-06-11 23:47:46 1412
原创 继承、宏、包含
继承: 1、创建父类模块news_base.html,所有子类的代码都合并写在父类模块news_base.html里面。 子类之间代码不同的地方在父类中抽取成{%block 名称 %} {% endblock %}。 2、子类:{% extends 'news_base.html' %}继承父类。 ...
2018-06-09 22:55:20 482
原创 CSS,HTML,JAVASCRIPT
流程:HTML将元素进行定义,CSS对展示的元素进行定位,再通过JavaScript实现相应的效果和交互。各自作用: 1、HTML:页面结构。 2、CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果。 3、JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能。分工:HT...
2018-06-04 01:19:03 404
原创 视图,事务,索引
#视图 1. 视图 2. 有什么用: 1. 一个复杂sql语句可以使用视图替换,代替 2. 数据库表结构更换了,我们可以不用更换python代码 3. 代码: 创建 create view v_视图名 as (select xxxxxx); 删除 drop view v_视图名; 注意: 不要在视图上去修改数据(道德). #事务 1....
2018-05-28 08:28:11 412
原创 虚拟机不能上网
虚拟机不能上网解决流程:1.关闭防火墙。2.点击网络和共享中心--> 更改适配器设置查看vMnet1 和VMnet8是否启用。3.打开虚拟机左边菜单栏--> 设置 --> 找到网络 --> 看飞行模式是否是关闭状态。4.重启虚拟机网卡 sudo service network-manager restart。5.点击虚拟机上面编辑 --> 左下角还原默认设置。6.s...
2018-05-27 22:10:58 447
原创 定位 , 层级
定位:relative,absolute,fixed:Relative,Absolute,Fixed都是定位用的。relative不会脱离文档流,而fixed和absolute会脱离文档流,当用left,right,top,bottom移动到其它位置,把原来位置让出来,下方位置的会填补它原来的空缺。Relative定位是相对于自己原先的位置。Fixed定位相对于body。单独的ab...
2018-05-22 23:23:40 1073
原创 TCP的三次握手、四次挥手
三次握手、四次挥手分别是在客户端与服务端建立连接和断开连接的时候发生的。三次握手是在客户端与服务端建立连接的时候:第一次握手:客户端要建立连接,就先发送一个有标志位SYN和报文序号J的连接请求给服务端。第二次握手:服务端收到数据包,通过标志位SYN知道客户端想要建立连接,于是把客户端发送过来的数据包添加同意的标志位ACK,并修改原来的报文序号为J+1和产生自己的报文序号K,然后返回给客户端表示...
2018-05-18 00:02:12 608
转载 UDP和TCP的比较
1. TCP: 传输控制协议, 面向连接可靠的传输协议, Transmission Control Protocol2. UDP: 用户数据报协议, 不面向连接不能保证数据的可靠性,但是传输速度快,占用资源少,User Datagram Protocol3. TCP的特点: 3.1 面向连接, 间接验证ip地址有效性 3.2 可靠的传输 3.2.1 应答机制:对方收到消息,底层会回复...
2018-05-17 23:51:14 600
原创 闭包和万能装饰器
1.闭包# 外层参数来自与函数名一致的调用(实参),可同时传递闭包外的函数的引用和其它参数多个参数(形参)# 内层参数来自外层函数调用对象的调用(实参),同时传递给闭包外的对应函数以及它的调用(形参)# 通过外层传递的只初始化一次,通过内层传递的初始化次数与调用次数一致。就跟变量在while true外面和里面一样def set_func(b): def call_func...
2018-05-14 23:51:53 516
原创 封装,继承,多态
封装,继承,多态是面向对象的三大特性;封装是定义类的准则,继承是设计类的技巧,多态是使用类的技巧。对象是由类创建的。完成某个工作,需要资源(数据,变量:属性)和功能(函数:方法)共同运作实现。所以一个完整的类里面需要包含这些:变量放在__init__里面,功能实现是通过各个def。封装:相关功能的函数和变量放在一个类里面,方便操作。封装的另外一个好处就是,为每个使用者(对象)提供了调用...
2018-05-12 23:20:43 570
原创 python里的常量通过property属性来实现
class LocalIp(object): def __init__(self): self.__IP = "192.168.102.157" @property def IP(self): return self.__IPlocal = LocalIp()print(local.IP)# 这里可以验证不能对常量进行修改lo...
2018-05-10 11:53:51 403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人