cookie

selenium的使用教程2

天涯浪子 提交于 2019-12-22 01:42:57
1. selenium 处理cookie driver.get_cookies()获取的是完整的cookie信息!不光有name、value,还有domain等其他信息! # 把cookie转化为字典 cookies_dict = {cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()} #删除一条cookie driver.delete_cookie("CookieName") # 删除所有的cookie driver.delete_all_cookies() 2.页面等待 页面等待的原因: 如果网站采用了动态html技术,那么页面上的部分元素出现时间便不能确定,这个时候就可以设置一个等待时间,强制要求在时间内出现,否则报错。 页面等待的方法: time.sleep(10) 3.selenium执行js代码 import time from selenium import webdriver driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver') driver.get("http://www.itcast.cn/") time.sleep(1) js = 'window.scrollTo

Java 发送http GET/POST请求

孤人 提交于 2019-12-21 23:18:10
最近项目里面需要用到Java发送http请求,由于发送https请求有点复杂,暂时不考虑 HttpURLConnection HttpURLConnection是一种多用途、轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。 HttpURLConnection是Java的标准类,它继承自URLConnection,可用于向指定网站发送GET请求、POST请求。它在URLConnection的基础上提供了如下便捷的方法: int getResponseCode(); // 获取服务器的响应代码。 String getResponseMessage(); // 获取服务器的响应消息。 String getResponseMethod(); // 获取发送请求的方法。 void setRequestMethod(String method); // 设置发送请求的方法。 如何使用 HTTP请求方法有8种,分别是GET、POST、DELETE、PUT、HEAD、TRACE、CONNECT 、OPTIONS。其中PUT、DELETE、POST、GET分别对应着增删改查。 GET:请求获取Request-URI所标识的资源 POST:在Request-URI所标识的资源后附加新的数据 HEAD:请求获取由Request-URI所标识的资源的响应消息报头 PUT:

大白话理解网络攻击(XSS、CSRF)

落爺英雄遲暮 提交于 2019-12-21 14:49:13
本文主要介绍了 XSS 和 CSRF 的攻击原理和防御措施及两者区别。接下来我们来了解下。 XSS 一、XSS 原理 Xss(cross-site scripting) 攻击: 通过向某网站写入 js 脚本或插入恶意 html标签来实现攻击 。 比如:攻击者在论坛中放一个 看似安全的链接,骗取用户点击后,窃取 cookie 中的用户私密信息; 或者攻击者在论坛中加一个恶意表单, 当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。 二、XSS攻击的类型 分为存储性(持久型)、反射型(非持久型)、基于DOM 1、存储性(持久型) 用户输入的带有恶意脚本的数据存储在 服务器端 。当浏览器请求数据时,服务器返回脚本并执行。 常见的场景: 攻击者在社区或论坛上写下一篇包含恶意 Js代码的文章或评论,文章或评论发表后,所有访问该文章或评论的用户,都会在他们的浏览器中执行这段恶意的 JavaScript 代码。 2、反射型(非持久型) 把用户输入的数据"反射"给 浏览器 。通常是,用户点击链接或提交表单时,攻击者向用户访问的网站注入恶意脚本。 常见的场景: 在正常页面上添加一个恶意链接。恶意链接的地址指向localhost:8080。然后攻击者有一个node服务来处理对localhost:8080的请求: 当用户点击恶意链接时

前端安全之XSS和csrf攻击

一笑奈何 提交于 2019-12-21 14:48:49
1.Csrf攻击概念: csrf攻击( Cross-site request forgery ): 跨站请求伪造 ; 2.Csrf攻击原理: 用户是网站A的注册用户,且登录进去,于是网站A就给用户下发cookie。 从上图可以看出,要完成一次CSRF攻击,受害者必须满足两个必要的条件: (1)登录受信任网站A,并在本地生成Cookie。(如果用户没有登录网站A,那么网站B在诱导的时候,请求网站A的api接口时,会提示你登录) (2)在不登出A的情况下,访问危险网站B(其实是利用了网站A的漏洞)。 我们在讲CSRF时,一定要把上面的两点说清楚。 温馨提示一下,cookie保证了用户可以处于登录状态,但网站B其实拿不到 cookie。 举个例子,前端事假你,微博网站有个api接口有漏洞,导致很多用户的粉丝暴增。 3.Csrf如何防御 方法一、Token 验证:(用的最多) (1)服务器发送给客户端一个token; (2)客户端提交的表单中带着这个token。 (3)如果这个 token 不合法,那么服务器拒绝这个请求。 方法二:隐藏令牌: 把 token 隐藏在 http 的 head头中。 方法二和方法一有点像,本质上没有太大区别,只是使用方式上有区别。 方法三、Referer 验证: Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。

Express 4.x Node.js的Web框架

左心房为你撑大大i 提交于 2019-12-21 14:22:27
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。 http://www.cnblogs.com/shijiaqi1066/p/3821150.html 本文使用node.js v0.10.28 + express 4.2.0 1 Express概述 Express 是一个简洁而灵活的node.js的MVC Web应用框架,提供一系列强大特性创建各种Web应用。 Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。 Expressd底层由Node.js的HTTP模块实现。 1.1 express 4.x 安装 express 4.x与之前的版本有了许多的变化,书里和网上的很多方法都不再适用。学习需要更多的参考官方文档。 若需要用express 3.x版本,直接使用nmp 中的@字符确定版本,指令如下: npm install -g express-generator@3 若需要使用4.x,注意的问题在4.x版本express 已经把命令行工具分离出来。 现在全局安装只需要安装这个命令行工具就可以,指令如下: npm install -g express-generator 1.2 创建express工程 使用express命令 express [options] 选项: -h, -

Python Day 64 Django框架、cookie和session、Django中Session相关方法、Django中支持Session5种存储介质

自古美人都是妖i 提交于 2019-12-21 13:29:15
  ##cookie和session原理(****************) #cookie工作原理   由服务器产生({"键": cookie值}),内容(cookie值)存在于客户端浏览器的一个key-val的随机字符串(键值对) #session原理   存在于服务端的包含用户敏感信息的键值对,键值对中的key分别是每一位客户端传来的cookie值,键值对中的value分别是每一个客户端对应的敏感信息 如: { “cookie值” : {“name”:‘icon’, 'age‘:18}, “cookie值1” : {“name”:‘icon2’, 'age‘:34}, “cookie值2” : {“name”:‘icon3’, 'age‘:45}, “cookie值3” : {“name”:‘icon4’, 'age‘:56}, }   ##Django中Session相关方法 #Django中操作Cookie方法之前博客已经详细说明,这里就不做介绍 # 获取、设置、删除Session中数据 request.session['k1'] request.session.get('k1',None) request.session['k1'] = 123 request.session.setdefault('k1',123) # 存在则不设置 del request

解决cookie需要刷新才能使用的问题以及和session的区别

戏子无情 提交于 2019-12-21 12:10:35
session在浏览器关闭时消失,而cookie还存在,且可以设置过期时间。 cookie在使用时,在php端设置了cookie后并不能直接使用的,因为此时只是告诉浏览器我设置了一个cookie,以及参数是什么。需要浏览器刷新后才能使用刚才设置的这个cookie。 解决办法: setcookie(“user_name”, “张三”, time()+3600); //此处设置cookie,过期时间为1小时 $_COOKIE[‘user_name’] = “张三”; //直接将值再一次付给cookie后,下面就能直接使用cookiel了 来源: CSDN 作者: 初级码农23333 链接: https://blog.csdn.net/qq_42538872/article/details/103641260

tornado总结5-登录与cookies

江枫思渺然 提交于 2019-12-21 11:27:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 目标 部分页面只有登录成功才能允许访问,否则自动跳转到登录页面 代码结构 https://git.oschina.net/donggen/tornado-test.git 分支是 tornado总结5 实际运行效果 1.没有登录的情况下访问 “http://localhost:8899”, 自动跳转到了 登录页面 可以看到地址栏是 http://localhost:8899/login?next=%2Fhome 2.输入错误的用户名或密码 3.输入正确的用户名和密码 弹窗显示登录成功,并且跳转到了home页面(这个跳转是js做的, 如果是get请求可以使用redirect来进行跳转)。 跳转后的页面 代码说明 main.py import os import tornado.httpserver import tornado.ioloop import tornado.web import my_uimodules from handlers.home import HomeHandler from handlers.login import LoginHandler class PageNotFoundHandler(tornado.web.RequestHandler): def get(self):

爬虫-requests用法

我的梦境 提交于 2019-12-21 10:07:41
中文文档 API: http://requests.kennethreitz.org/zh_CN/latest/ 安装 pip install requests 获取网页 # coding=utf-8 import requests response = requests.get('http://www.baidu.com') # 第一种方式 获取响应内容 # 查看网页编码方式 print(response.encoding) # 修改编码方式 response.encoding = 'utf-8' # 获取响应内容 print(response.text) # 第二种方式 获取二进制响应内容 # 获取二进制响应内容 print(response.content) # 解码 decode('解码方式') 默认时utf-8的方式 print(response.content.decode())# coding=utf-8 import requests response = requests.get('http://www.baidu.com') # 第一种方式 获取响应内容 # 查看网页编码方式 print(response.encoding) # 修改编码方式 response.encoding = 'utf-8' # 获取响应内容 print(response.text) #

jquery datatable 参数

梦想的初衷 提交于 2019-12-21 09:15:38
jquery datatable 参数 DataTables(http://www.datatables.net/)应该是我到目前为止见过的,功能最强大的表格解决方案(当然,不计算其它整套框架中的table控件在内)。 先把它主页上写的特性翻译罗列如下: 可变长度分页;动态过滤;多列排序,带数据类型检测功能;列宽度的智能处理;从多种数据源获取数据(DOM,js Array, ajax file, server-side returning);滚动配置属性;完整国际化支持; jquery UI ThemeRoller支持;经历了个2600多个单元测试,相当牢固;有为数不少的插件支持;免费的;状态保存能力;支持隐藏列;动态创建表格的能力;自动ajax数据加载;自定义DOM位置;单列过滤(这个与前面的过滤有区别么?);多种分页器;无损的DOM交互;参与排序的列高亮;高级数据源配置;扩展的插件支持功能;可以用css完全配置表象;丰富的文档; 110多个例子;对Adobe AIR的完全支持。 引入 使用 Javascript代码 $(document).ready( function (){ $( '#example' ).dataTable(); }); // 另一个例子 $(document).ready( function (){ $( '#example' ).dataTable({