昨天看了第一节的视频。关于get和post安全性说一些。 一般我们认为get是请求资源,不修改资源;post提交数据/修改资源。但并不是所有人都这么实现服务。

昨天看了第一节的视频。关于get和post安全性说一些。
一般我们认为get是请求资源,不修改资源;post提交数据/修改资源。但并不是所有人都这么实现服务。

我见过有人用 get 方式做登录;也有在get方法中对关联数据做 get or create 操作。(get 方式提交/修改资源)
还有一种情况,提交若干id返回相应数据的列表,这个属于请求数据,但限于get url长度限制,使用了 post 方式替代。(post 方式请求资源)

但一般所说的 get 不安全是指 get 会把请求数据暴露给普通用户,但这是用 form 的方式才这样,使用 ajax 永远都会暴露给普通用户。另外对于非普通用户(程序员),不管是啥方式,都会暴露。

 我觉得我的理解没有偏差。

JVMer

赞同来自:

也就是一个是url明文写了,一个没有 url上明文写的话,参数什么,人家一看就看到了,所以不安全  

张妍

赞同来自:

我觉得老师说的不安全,是从服务端的角度在考虑 post的确有机会去恶意攻击服务器

JVMer

赞同来自:

是啊,服务器角度当然不安全啦,有时候端口号啥都都暴露了 这个属于网络开发基础知识,如果是做j2ee或者asp.net的话,对这块会有比较详细的描述

史晓江

赞同来自:

使用GET的请求方式一般是获取数据,是安全的,如果用来提交数据的是危险的 每种请求方式都有它的设计初衷的

小象小象r16

赞同来自:

是的,但不是所有人都遵循了。   如果一个 api 不修改资源(不管是 get 还是 post),就没人能利用他做坏事。如果 一个 api 会修改资源,就可能会被利用。   好像也不对,如果一个数据敏感,也不希望别人随便获取这种情况。 不管是啥,只要有人去爬,对server端来说,也是不爽的。   我还是觉得,对服务器端来说:他们的安全性是没有区别的。 对客户端来说:对普通用户 get 不安全(把url做浏览器书签怎么办);对程序员来说,都是裸体的。

小康康

赞同来自:

安全是系统性的问题 并不能通过 get和post请求这么划分 post 在浏览器请求头里面也是暴露的

兔撕鸡大爷

赞同来自:

我也说一下,不同意见可以交流 get和post的安全性这里主要是http本身协议的安全性   get方法所有信息都在url里,这个url在http和https协议里是不会加密的,所有信息都会随着url暴露给这个http(S) 包经过的所有路由   任何一个路由出现被监听的环节,都会导致get的数据泄露   https不会加密url

小象老师

赞同来自:

 https 是对整个 HTTP 数据包加密   url  的 数据是存储在 http header 部分的,当然是加密的   https = http + ssl,http 在7层,ssl 在4层,TCP层进行加密。加密后只有IP包的加密报文,没有秘钥是无法解密

兔撕鸡大爷

赞同来自:

那浏览器怎么通过dns知道url和ip的对应关系呢

小象老师

赞同来自:

这个讲起来很复杂啊,几句话说不清楚。路由是在第3层,浏览器把这些工作交给平台去完成   就跟你写一个APP,你只需要封装数据报文,然后调平台的接口,把URL传给平台,平台会解析DNS,然后建立socket,组包发送到另一端   如果你写一下socket程序,就能比较明白 我们的课程会介绍直接基于socket的编程

张妍

赞同来自:

是有一个对应表来决定url对应的socket bind的地址吗

小康康

赞同来自:

socket 是TCP协议吧

张妍

赞同来自:

对啊,tcp建立连接管道的

小康康

赞同来自:

内部系统建立心跳发报文

小象老师

赞同来自:

socket bind 的用来绑定端口,要监听的端口的

要回复问题请先登录注册