post请求

AFNetworking到底长啥样(下)

坚强是说给别人听的谎言 提交于 2019-12-04 18:05:07
在 AFNetworking到底长啥样(上) 中简单介绍了AFN涉及的主要类及其结构,接下来以一个简单的POST请求探寻其内部是如何实现的。 一、环境搭建 服务器配置 本例中直接使用iMac自带的Apache,并为其开启PHP支持。在服务器目录下编写index.php文件如下: <?php echo @"This is Layne's Response"; ?> 编写测试App 创建一个测试App,在主界面上增加一个按钮,在按钮的点击函数中发起网络请求,如下: - (AFHTTPSessionManager *)manager{//lazy if(!_manager){ _manager = [AFHTTPSessionManager manager]; } return _manager; } - (void)click{ [self.manager POST:@"http://www.layne.com" parameters:@{@"name":@"layne",@"age":@30} headers:@{@"TestName":@"myTest"} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"success:%@"

CSRF漏洞原理浅谈

痞子三分冷 提交于 2019-12-04 16:45:57
CSRF漏洞原理浅谈 By : Mirror王宇阳 E-mail : mirrorwangyuyang@gmail.com 笔者并未深挖过CSRF,内容居多是参考《Web安全深度剖析》、《白帽子讲web安全》等诸多网络技术文章 CSRF跨站请求攻击,和XSS有相似之处;攻击者利用CSRF可以盗用用户的身份进行攻击 CSRF攻击原理 部分摘自《Web安全深度剖析》第十章 当我们打开或登录某个网站后,浏览器与网站所存放的服务器将会产生一个会话,在会话结束前,用户就可以利用具有的网站权限对网站进行操作(如:发表文章、发送邮件、删除文章等)。会话借宿后,在进行权限操作,网站就会告知会话超期或重新登录。 当登录网站后,浏览器就会和可信的站点建立一个经过认证的会话。所有通过这个经过认证的会话发送请求,都被认定为可信的行为,例如转账、汇款等操作。当这个会话认证的时间过长或者自主结束断开;必须重新建立经过认证的可信安全的会话。 CSRF攻击是建立在会话之上。比如:登录了网上银行,正在进行转账业务,这是攻击者给你发来一个URL,这个URL是攻击者精心构造的Payload,攻击者精心构造的转账业务代码,而且与你登录的是同一家银行,当你认为这是安全的链接后点击进去,你的钱就没了! 比如想给用户xxser转账1000元,正常的URL是: secbug.org/pay.jsp?user=xxser

CTF Web题

我与影子孤独终老i 提交于 2019-12-04 16:36:26
1.web2 听说聪明的人都能找到答案 http://123.206.87.240:8002/web2/ CTRL + u 查看源代码 2.计算器 http://123.206.87.240:8002/yanzhengma/ 改一下字符输入长度的限制 3.web基础$_GET http://123.206.87.240:8002/get/ ?var=val 4.web基础$_POST http://123.206.87.240:8002/get/index1.php 直接用BurpSuite改包,注意先改为POST request 5.矛盾 http://123.206.87.240:8002/get/index1.php $num = GET[′num′];if(!isnumeric( G​ET[′num′];if(!isn​umeric(num)) { echo num;if( num;if(num == 1) echo ‘flag{**********}’; } 此处 == 为弱类型判断,num = 1e ,num == 1 6.web3 flag就在这里快来找找吧 http://123.206.87.240:8002/web3/ 直接查看源码,得KEY{J2sa42a hJK-HS11III} 扔到 Burp 解码试试,解为html得flag 7.域名解析 听说把 flag

axios post请求数据,在Content-Type为application/x-www-form-urlencoded情况下,data如何转换为json的解决办法

北战南征 提交于 2019-12-04 14:57:49
记录下此次bug的心路历程及解决方法,用时不到一天 首先在用axios.post请求时 Response for preflight has invalid HTTP status code 405 返回这样的错误,网上说设置 请求头为 "Content-Type", "application/json",但是并没有效果,于是乎 用ajax调用了一遍,发现没有任何问题,然后对比了一下请求: ajax 请求 axios请求 对比发现请求头成了options,而ajax 方法的'Content-Type'为'application/x-www-form-urlencoded', 把请求头改成这个之后,果然返回200了,但是却返不会正确数据,再次对比请求接口发现Form Data 参数为string,而不是json, 于是乎想各种办法让参数变为json,axios官网提供了一种方法,transformRequest可以改变方式 于是乎这样就可以返回正常的数据了, 到这里基本上也就解决了问题了,但是我还需要用到我得参数,于是乎 相当于做了两次强制类型转换; 在下是在解决完问题后又返回去想了一遍,有很多细节没有写道,有机会下次边解决边写。 亲测有效,鄙人不才,有问题欢迎留言。 来源: CSDN 作者: Qlily_ing 链接: https://blog.csdn.net/Qlily_ing

HTTP 请求头与请求体

放肆的年华 提交于 2019-12-04 14:21:38
HTTP Request HTTP 的请求报文分为三个部分 请求行、请求头和请求体,格式如图: 一个典型的请求消息头域,如下所示:   POST/GET http://download.microtool.de:80/somedata.exe   Host: download.microtool.de   Accept: */*   Pragma: no-cache   Cache-Control: no-cache   Referer: http://download.microtool.de/   User-Agent:Mozilla/4.04[ en]( Win95;I;Nav)   Range:bytes=554554- Request Line:请求行 请求行(Request Line)分为三个部分:请求方法、请求地址和协议及版本,以CRLF(rn)结束。HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。 Request Methods 注意,仅有POST、PUT以及PATCH这三个动词时会包含请求体,而GET、HEAD、DELETE、CONNECT、TRACE

post 请求 content-type的区别

别来无恙 提交于 2019-12-04 14:15:45
在接口提交数据时候,Content-Type应该是application/x-www-form-urlencoded 还是 application/json。是需要考虑的问题。 application/x-www-form-urlencoded 与 application/json 的区别: 如果是通过页面表单方式提交,那就是”application/x-www-form-urlencoded”; 如果是json(要反序列化成字符串),那就是”application/json” 所以,要根据传参的格式进行区别使用 对于”application/x-www-form-urlencoded”,其参数组织形式,是键值对,类似于get方式的参数形式:name=张三&sex=男&tel=5354169,而json大家都知道,是这样的: { name:”张三”, sex:”男”, tel:”5354169”, } 所以,如果你传递的参数是json,而你声明的header是”application/x-www-form-urlencoded”,或者没有声明这个”Content-Type”(似乎默认就是”application/x-www-form-urlencoded”),则服务器拿不到提交的数据。数据是传过去了,但读不出来。 来源: CSDN 作者: adley_app 链接: https:/

content-type的几种取值

拥有回忆 提交于 2019-12-04 14:15:03
参考: http://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data 四种常见的 POST 提交数据方式 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样: <method> <request-url> <version> <headers> <entity-body></entity-body></headers></version></request-url></method> 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。 但是,数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 php、python 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了

接口自动化框架搭建(一)

喜你入骨 提交于 2019-12-04 13:51:44
使用requests库封装接口请求 详细教程请查看官方文档:https://requests.kennethreitz.org//zh_CN/latest/user/quickstart.html#url 入门教程:https://www.cnblogs.com/huaerye/p/9132607.html 参考文档:https://www.cnblogs.com/shapeL/p/9045439.html 第一次修改:将get请求和post请求单独定义,使用过程中根据不同类型的请求直接调用对应的方法; def send_get(url,data,headers): res = requests.get(url=url,json=data,headers=headers).json() # return json.dumps(res,sort_keys=True,indent=2) return res def send_post(url,data,headers): res = requests.post(url=url,json=data,headers=headers).json() return json.dumps(res,sort_keys=True,indent=4) #indent默认情况下为空,4个空格,sort_keys:按照一定顺序展示数据 def run

Qt请求http地址数据

≯℡__Kan透↙ 提交于 2019-12-04 13:30:38
QNetworkAccessManager *manager = new QNetworkAccessManager(this);; QNetworkRequest network_request; QByteArray post_data; network_request.setUrl(QUrl("http://109.26.149.57:8080/tsinghuaVC/init/selectAllFolder.action")); network_request.setHeader(QNetworkRequest::UserAgentHeader,"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36"); connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*))); //发送请求 manager->get(network_request); void replyFinished(QNetworkReply* reply) { QTextCodec

python中requests库使用方法详解

不羁岁月 提交于 2019-12-04 12:06:29
目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 响应 response属性 高级操作 获取cookie 会话维持、模拟登陆 证书验证(SSL Cert Verification) 认证设置 代理设置 超时设置 异常处理 上传文件 带参数的GET请求->headers 带参数的GET请求->cookies 发送post请求,模拟浏览器的登录行为 补充json python中requests库使用方法详解 官方文档 requests的具体安装过程请看:http://docs.python-requests.org/en/latest/user/install.html#install requests的官方指南文档:http://docs.python-requests.org/en/latest/user/quickstart.html requests的高级指南文档:http://docs.python-requests.org/en/latest/user/advanced.html#advanced 什么是Requests Requests 是⽤ ython语⾔编写,基于urllib,采⽤Apache2