cookie

Web安全

故事扮演 提交于 2020-02-06 10:45:14
网络钓鱼 网络钓鱼 (Phishing) 伪造网页以欺诈方式 获取敏感资料 用户一般是从垃圾邮件中访问网络钓鱼页面 钓鱼网站常用方式: 错误拼写URL链接 Unicode攻击 移除或伪造地址栏 可移动代码 可执行、通过网络发送、在目标电脑上执行的代码程序。 沙箱 应用程序或脚本在另一个应用程序中的运行权限 沙箱 只能访问某些文件和设备 Cookies cookie是存储在计算机上、与特定服务器关联的一小部分信息。当您访问特定网站时,它可能会将信息存储为cookie,每次您重新访问该服务器时,cookie都会被重新发送到服务器, 用于在会话中保存状态信息。 cookie可以保存任何类型的信息。可以保存敏感信息,包括密码,信用卡信息,社保号码等等。 会话型cookie 是浏览器的处理过程中保留的,是暂时性的,当浏览器关闭时则消除; 持久性cookie 是保存在客户端的硬盘上的,浏览器关闭也不会消除。 跨站脚本(XSS) 跨站脚本(XSS):攻击者将脚本代码注入Web应用程序生成的页面 XSS的发起条件 Web服务器 没有对用户输入进行有效性验证 或者验证强度不够,而又 轻易地将它们返回到客户端 允许用户在表格或编辑框中输入不相关字符 存储并允许把用户输入显示在返回给终端的页面上 ,而没有去除非法字符或者重新进行编码 客户端对XSS的防御 基于代理:

爬虫_chap1网络请求

蓝咒 提交于 2020-02-06 05:29:35
文章目录 爬虫_chap1网络请求 01.前奏 准备工具: 通用/聚焦 02.http和https协议: url详解:scheme,host,port,path,query-string,anchor 常用的请求方法:get获取, post上传 请求头header常见参数:user-angent,referer,cookie 常见响应状态码: 03.urllib库 urlopen函数:得到response,默认请求get,设置data成为post urlretrieve函数:下载到本地 urlencode函数:把字典数据转换为`URL`编码的数据 parse_qs函数:解码 urlparse和urlsplit:分割组分为scheme,netloc,path,query,params等 request.Request类:用自定义请求头发送请求(request.urlopen) 内涵段子爬虫实战作业: ProxyHandler处理器(代理设置):用自定义opener来使用代理 什么是cookie: cookie的格式: 使用cookielib库和HTTPCookieProcessor模拟登录: http.cookiejar`模块`: 登录人人网: 保存cookie到本地: 从本地加载cookie: 04.requests库 安装和文档地址: 发送GET请求: 发送POST请求:

Web开发中的技术Cookie,Session,Token

妖精的绣舞 提交于 2020-02-06 04:48:38
在Web应用中,Http请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每一次打开页面需要登录,就出现了Cookie和Session技术。 Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的信息,也是实现Session的一种方式。Cookie存储的数据量有限,都是保存在浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此Cookie只能存储一小段的文本信息。 例如:登录网站,用户第一天输入用户名和密码进行登录,第二天有可能就直接打开。 Session Session是另一种记录客户状态的机制,它是在服务端保存的数据结构(SessionID和Session内容,还有很多自定义的内容.如:用户基本信息、权限信息等等),这个数据可以保存在持久化数据库、Redis缓存库、文件中,用于跟踪用户的状态。 客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端再次访问时只需要从该Session中查找该用户的状态即可。 用户第一次登录后,浏览器会将用户信息发送给服务器,服务器会给此用户创建一个SessionId,并在相应内容(Cookie)中将该SessionId一起返回给浏览器,浏览器将这些数据保存到客户端本地。当用户再次发起请求时

Cookie

霸气de小男生 提交于 2020-02-05 21:49:40
Cookie 由于Http协议是无状态协议,当同一个用户请求一个页面后,再请求同一个网站的另一个页面时,http协议并不能告诉服务器两个请求是来自同一个用户,不能将两次访问联系到一起。 Cookie 可以让Web服务器将一些网站登录用户的资料存放于客户端的电脑上。例如:当通过验证,成功登陆网站后,在同一个网站下第一个页面的PHP脚本,会把这个用户有关的信息设置到客户端电脑的Cookie中,当再次访问同一个网站中的其他脚本时,会自动携带Cookie中的数据一起访问,服务器中的每个脚本都可以接受Cookie中的数据,不需要每访问一个页面就重新输入一次登陆者的信息。 Cookie 的建立 1. 向用户端电脑设置Cookie    setcookie(); 2. 在服务器端读取Cookie内容   $_COOKIE 3. 将多维数组应用于Cookie中    setcookie(“member[name]”,’liangjie’); setcookie(“member [email]”,’1853881164@qq.com’); 4. 删除Cookie        setcookie(“member”,‘ ’,time()-3600); //将时间设为超时 实验1 新建文件下,在其下面创建第一个.php文件,建立Cookie。代码如下: <?php header('Content

web前端安全

假装没事ソ 提交于 2020-02-05 16:05:26
1. xss: cross site scripting,跨站脚本攻击。 1.1 定义: 指的是通过存在安全漏洞的web网站注册用户的浏览器内运行非法的非本站点HTML标签或js进行的一种攻击方式。 1.2 影响: 利用虚假输入表单骗取用户个人信息。利用脚本窃取用户cookie值,帮助攻击者发送恶意请求(如伪造文章或者图片)。 1.3 案例: 1.3.1 反射型:url参数直接注入,案例如下: //1. 正常网站发送请求:参数from=Ace 窗口输入:https://xxx.com/api?from=Ace //2. 尝试xss攻击:js修改弹出弹窗alert() 窗口输入:https://xxx.com/api?from=<script>alert('尝试在当前页面修改js攻击是否成功')</script> //3. 如果尝试xss攻击成功,可以弹出弹窗,则可以尝试用xss获取用户cookie:即执行指定攻击的js代码 窗口输入:https://xxx.com/api?from=<script scr='https://xxx.com/hack.js'></script> //4. 在https://xxx.com/hack.js代码中:获取cookie var img=new Image() img.src='https://xx.com/img?c='+document

CooKies&&Session会话技术详解

杀马特。学长 韩版系。学妹 提交于 2020-02-05 13:32:59
会话技术 1. 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2. 功能:在一次会话的范围内的多次请求间,共享数据 3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:Session Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. 快速入门: * 使用步骤: 创建Cookie对象,绑定数据 new Cookie(String name, String value) 发送Cookie对象 response.addCookie(Cookie cookie) 获取Cookie,拿到数据 Cookie[] request.getCookies() 3. 实现原理 * 基于响应头set-cookie和请求头cookie实现 4. cookie的细节 1. 一次可不可以发送多个cookie? 可以 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。 2. cookie在浏览器中保存多长时间? 默认情况下,当浏览器关闭后,Cookie数据被销毁 持久化存储: setMaxAge(int seconds) 正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效 负数:默认值

Cookie、Session和Token

不羁的心 提交于 2020-02-05 11:44:04
在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。 Cookie Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用 Cookie 实际上只能存储一小段的文本信息。 例如:登录网站,今天输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是Cookie。 Session Session是另一种记录客户状态的机制,它是在服务端保存的一个数据结构(主要存储的的 SessionID 和 Session内容 ,同时也包含了很多自定义的内容如:用户基础信息、权限信息、用户机构信息、固定变量等),这个数据可以保存在集群、数据库、文件中,用于跟踪用户的状态。 客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了。 用户第一次登录后,浏览器会将用户信息发送给服务器

Iris_MVC

ε祈祈猫儿з 提交于 2020-02-05 10:05:39
2. MVC包使用 在Iris框架中,封装了mvc包作为对mvc架构的支持,方便开发者遵循mvc的开发原则进行开发。 iris框架支持请求数据、模型、持久数据分层处理,并支持各层级模块代码绑定执行。 MVC即:model、view、controller三个部分,分别代表数据层、视图层、控制层。控制器层负责完成页面逻辑、实体层负责完成数据准备与数据操作、视图层负责展现UI效果。 在iris框架中,用一张图表示前端请求、服务端处理请求、服务端返回数据到前端的请求过程图,描述如下: 2.1 mvc.Application iris框架中的mvc包中提供了Application结构体定义。开发者可以通过注册自定义的controller来使用对应提供的API,其中包含路由组router.Party,以此用来注册layout、middleware以及相应的handlers等。 2.2 iris.mvc特性 iris框架封装的mvc包,支持所有的http方法。比如,如果想要提供GET,那么控制器应该有一个名为Get()的函数,开发者可以定义多个方法函数在同一个Controller中提供。这里的Get、Post方法是指的直接和八种请求类型同名的方法,mvc模块会自动执行到Get()、Post()等八种对应的方法。如下所示: //自定义的控制器 type CustomController

Django首页显示用户名

二次信任 提交于 2020-02-05 05:39:43
Django首页显示用户名 实现效果图: 编写前端页面: <tr v-if="username"> <td>当前登录用户:[[username]]</td> <td><a href="/logout/">注销</a></td> </tr> <tr v-else="username"> <td><a href="/login/">登录</a></td> <td><a href="/register/">注册</a></td> </tr> vue中需要绑定的变量:[[ username ]] 实现原理: 用户登录之后,保持登录状态,随后在cookie中添加登录信息。 页面重定向到首页时,vue读取cookie。若cookie有用户名信息,则显示已登录状态,若没有,则显示未登录状态。 配置路由: from django.conf.urls import url from . import views urlpatterns = [ url('^$', views.IndexView.as_view()), ] 编写视图函数: from django.shortcuts import render from django.views import View class IndexView(View): def get(self, request): return render

python学习-----爬虫技巧

本小妞迷上赌 提交于 2020-02-05 03:32:32
文章目录 requests模块 爬取百度的源代码并保存到本地。 关于url中的请求参数来执行具体请求。 发送post请求 反反爬虫 处理cookie requests模块 爬虫的动作都是在对应你想要的网页源代码里抓取的 本质是模拟客户的请求,接收对方的网络响应,按照程序员的要求抓取对应的信息 (理论上浏览器能做的,爬虫都能做) 爬虫分类: 通用爬虫: 搜索引擎的爬虫 聚焦爬虫: 针对特定网站的爬虫 搜索引擎的工作原理: 爬取网页–存储数据–预处理–提供搜索和排名服务 对网站发起请求的种类 get 浏览器输入框里的请求 post 表单输入 爬取百度的源代码并保存到本地。 import requests def main ( ) : url = "https://www.baidu.com" headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" } responses = requests . get ( url , headers = headers ) #带header的请求 #print(responses.content)