post请求

跨站请求伪造(csrf)

牧云@^-^@ 提交于 2019-12-03 00:17:42
跨站请求伪造(csrf) 钓鱼网站 ​ 就类似于你搭建了一个跟银行一模一样的web页面 ​ 用户在你的网站转账的时候输入用户名 密码 对方账户 ​ 银行里面的钱确实少了 但是发现收款人变了 最简单的原理 你写的form表单中 用户的用户名 密码都会真实的提交给银行后台 但是收款人的账户却不是用户填的 你暴露给用户的是一个没有name属性的input框 你自己提前写好了一个隐藏的带有name和value的input框 真正的网站 前端 <h1>真正的网站</h1> <form action="" method="post"> <p>username:<input type="text" name="username"></p> <p>target_username:<input type="text" name="target_username"> </p> <p>money:<input type="text" name="money"></p> <input type="submit"> </form> 后端 def transfer(request):#转账 if request.method=="POST": username = request.POST.get('username') target_username = request.POST.get('target

Django框架之 Cookie与Session组件

别来无恙 提交于 2019-12-03 00:13:41
目录 一、Cookie 1.1 什么是Cookie 1.2 Cookie的原理 1.3 如何查看Cookie 1.4 Django中操作Cookie 1.4.1 获取 1.4.2 设置 1.4.3 删除 1.5 Cookie版登陆校验 二、Session 2.1 什么是session? 2.2 操作session 2.2.1 获取 2.2.2 设置 2.2.3 删除session的两种方式 2.2.4 如何设置session的过期时间 2.2.5 session的其他参数 2.3 Session版登陆验证 2.4 session流程解析 2.5 Django 中的session 配置 三、CBV加装饰器 3.1 CBV加装饰器案例 3.2 CBV加装饰器的方法 一、Cookie 大家都知道 HTTP协议 是 无状态 的。 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 1.1 什么是Cookie

HTTP的幂等性

匿名 (未验证) 提交于 2019-12-03 00:11:01
转自: https://www.jianshu.com/p/234cf2e96832 理解HTTP幂等性 基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技术和工具的发展,互联网应用架构设计表现出了从传统的PHP、JSP、ASP.NET等服务器端动态网页向Web API + RIA(富互联网应用)过渡的趋势。Web API专注于提供业务服务,RIA专注于用户界面和交互设计,从此两个领域的分工更加明晰。在这种趋势下,Web API设计将成为服务器端程序员的必修课。然而,正如简单的Java语言并不意味着高质量的Java程序,简单的HTTP协议也不意味着高质量的Web API。要想设计出高质量的Web API,还需要深入理解分布式系统及HTTP协议的特性。 幂等性定义 本文所要探讨的正是HTTP协议涉及到的一种重要性质:幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是:

vue Excel导出 [post请求+提示语]

匿名 (未验证) 提交于 2019-12-03 00:08:02
一般我们实现excel导出都是直接重定向或form表单提交,但如果后台发生异常,提示信息就会在新窗口以文本形式展示,很不友好,这里推荐另一种实现方式,使用post请求,并可以传递自定义错误信息: 前端使用axios,responseType要设置为blob let that= thislet params = { activitiesId: activitiesId, startTime: startTime, endTime: endTime } axios({ method: 'post', url: '/activityManage/exportExcel', data: params, responseType: 'blob' }).then(resp => { that.downloadFile(resp,that) }).catch(resp => { that.$notify.error(resp.msg || '导出失败') }) 下载方法,实现方式为打开一个新链接,然后放置download按钮,并自动点击: downloadFile (resp,that) { let data = resp.data     // 此处提示自定义提示语,从header中获取     if(resp.headers['errormsg'] || !data){       that

HTTP请求415错误 Unsupported media type

匿名 (未验证) 提交于 2019-12-03 00:02:01
1:检查你的 http 请求头信息,比如 因为 User-Agent 被服务器设置 拒绝请求了; 比如你写的的爬虫,就很有可能因为没有伪装成浏览器,被拒绝请求 user - agent 详情 2:查看你的 http 请求方法,以及服务器端的设置 比如:有一个 强制用 post 请求的接口,你是不是用了非post 请求 3:post 请求参数设置,是不是必须的,json 格式 比如下面,两段代码 来源:51CTO 作者: qq_37381081 链接:https://blog.csdn.net/qq_37381081/article/details/100705127

[系列] - go-gin-api 路由中间件 - 日志记录(三)

匿名 (未验证) 提交于 2019-12-02 23:57:01
Ŀ¼ gin.Logger() 首先同步下项目概况: 上篇文章分享了,规划项目目录和参数验证,其中参数验证使用的是 validator.v8 版本,现已更新到 validator.v9 版本,最新代码查看 github 即可。 这篇文章咱们分享:路由中间件 - 日志记录。 日志是特别重要的一个东西,方便我们对问题进行排查,这篇文章我们实现将日志记录到文本文件中。 这是我规划的,需要记录的参数: - request 请求数据 - request_time - request_method - request_uri - request_proto - request_ua - request_referer - request_post_data - request_client_ip - response 返回数据 - response_time - response_code - response_msg - response_data - cost_time 花费时间 Gin 框架中自带 Logger 中间件,我们了解下框架中自带的 Logger 中间件是否满足我们的需求? gin.Logger() 我们先使用 gin.Logger() 看看效果。 在 route.go SetupRouter 方法中增加代码: engine . Use ( gin . Logger ())

Django中@login_required用法简介

匿名 (未验证) 提交于 2019-12-02 23:55:01
我们在网站开发过程中,经常会遇到这样的需求: 用户登陆系统才可以访问某些页面 如果用户没有登陆而直接访问就会跳转到登陆界面,而不能访问其他页面。 用户在跳转的登陆界面中完成登陆后,自动访问跳转到之前访问的地址 要实现这样的需求其实很简单: 使用django自带的装饰器 @login_required。 在相应的view方法的前面添加@login_required 并在settings.py中配置LOGIN_URL参数 修改login.html中的表单action参数 view.py设置: from djanco . contrib . auth . decorators import login_required from django . shortcuts import render_to_response from django . http import HttpResponse @login_required def myview ( request ): return render_to_response ( 'index.html' ) 如果用户还没有登录,默认会跳转到‘/accounts/login/’。这个值可以在settings文件中通过LOGIN_URL参数来设定。(后面还会自动加上你请求的url作为登录后跳转的地址,如: /accounts/login/

django

≯℡__Kan透↙ 提交于 2019-12-02 23:53:56
目录 1. cookie与session 1.1 cookie 1.2 session 2. django中间件 3. 跨站请求伪造(csrf) 3.1 form表单 3.2 ajax 3.3 CBV中加装饰器相关 1. cookie与session # 为什么会有cookie和session? # 由于http协议是无状态的 无法记住用户是谁 # django必会三板斧 return HttpResponse() return render() return redirect() # 变形: obj1 = HttpResponse() return obj1 obj2 = render() return obj2 obj3 = redirect() return obj3 1.1 cookie ''' cookie是保存在客户端浏览器上的键值对 是服务端设置在客户端浏览器上的键值对 也就意味着浏览器其实可以拒绝服务端的"命令" 默认情况下 浏览器都是直接让服务端设置键值对 设置cookie obj.set_cookie() 获取cookie request.COOKIES.get() 删除cookie obj.delete_cookie() ''' # 登录功能: 用户登录成功之后 一定要保存用户状态 def login(request): # print(request

MOCTF-WEB-writeup

匿名 (未验证) 提交于 2019-12-02 23:52:01
MOCTF-WEB-writeup 好菜,除了简单的几个题,自己会做,难的都是看老大WP完成的,太菜了 啥姿势都不会,就此记录一下,供日后查看及反省。菜鸡的自我修养 0x01 一道水题 题目链接: http://119.23.73.3:5001/web1/ 直接F12了解一下,get flag:moctf{easy_source_code} 0x02 还是水题 题目链接: http://119.23.73.3:5001/web2/ F12查看源码。 修改之后,输入moctf提交就可以行了。get flag:moctf{break_the_html} 0x03 访问限制 http://119.23.73.3:5001/web3/ BP抓包,将代理的浏览器设置为NAIVE,重新发包。get flag:moctf{http_header_1s_easy} 0x04 机器蛇 http://119.23.73.3:5001/web4/ F12查看源码 然后访问robots.txt 最后访问图中的地址,即可获得Flag get flag:moctf{g0Od_r0bots_txt} 0x05 PHP黑魔法 题目链接: http://119.23.73.3:5001/web5/ 这题,输了index.php,看不到任何东西,也不会跳转到其他页面,题目给的提示也没说php~ 我太难了

AFN Post请求,报错400(code:-1011)

匿名 (未验证) 提交于 2019-12-02 23:47:01
坑的原因 : 后台需求传json,我传的字典 解决方法: 声明请求的参数格式是json, AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; 附加说明: //说明请求格式为json格式 //说明接收格式为json格式 manager.responseSerializer = [AFJSONResponseSerializer serializer];