vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全
https://segmentfault.com/q/1010000005618139
vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全
点击提交,发送请求。
但是api:123用于加密的参数,直接暴露了。右键源代码就可以看到

<body>
<div class="row">
<div class="col-md-4 col-md-offset-4">
<table class="table table-bordered" id="content">
<tr>
<td>
商品分类
</td>
<td>
<select name="cid" v-model="cid">
<template v-for="vo in goodscategory">
<option v-bind:value="vo.goodscategory_id">{{vo.goodscategory_name}}</option>
</template>
</select>
{{cid}}
</td>
</tr>
<tr>
<td style="width: 30%">
商品名称
</td>
<td>
<input type="text" name="name" v-model="goodsname" value=""/>
<span>{{ goodsname }}</span>
</td>
</tr>
<tr>
<td>
排序
</td>
<td>
<input type="text" name="sort" v-model="sort"/>
{{sort}}
</td>
</tr>
<tr>
<td>
价格
</td>
<td>
<input type="text" v-model="price"/>
{{price}}
</td>
</tr>
<tr>
<td>
商品描述
</td>
<td>
<textarea name="desc" id="" cols="30" rows="5" v-model="desc"></textarea>
{{desc}}
</td>
</tr>
<tr>
<td colspan="2">
<button type="button" v-on:click="submit">提交</button>
</td>
</tr>
</table>
</div>
</div>
<script type="text/javascript">
var vm = new Vue({
el:"#content",
data: {
cid:0,
goodsname:"",
sort:0,
price:0,
desc:"",
goodscategory:[]
},
methods: {
submit: function () {
this.$http({
url: 'http://localhost/wang/index.php/Admin/Goods/createProcess',
method: 'POST',
emulateJSON: true,
data: {
cid: this.cid,
name: this.goodsname,
sort: this.sort,
price: this.price,
desc: this.desc
}
}).then(function(response) {
console.log(response.data);
}, function(response) {
});
}
},
ready: function() {
var self = this;
this.$http({url: 'http://localhost/wang/index.php/Home/Vue/goodscategory', method: 'POST'}).then(function (response) {
self.$set('goodscategory', response.data)
}, function (response) {
// error callback
});
}
})
</script>
解决方案:
1.接口服务方输入控制
2.参数合法性校验
3.HTTPS
4.CSRFToken安全性校验
这对用户是透明的,防范思路:
1.服务端CSRFToken校验
2.refer校验
3.同一用户的频度控制
输出响应前服务端对SessionID混淆前缀并加密(MD5),埋点在HTML隐藏<Input />,所有请求将此字段发送给服务端,校验是否相等
判断$_REQUEST['Referer'],判断这个字段是不是为空或者不是你希望的域名
否则如果仅仅是大众数据,本来也是给人看的,那能防得住么?
还有一点你没搞清楚,信息安全重点在信息,但你理解成获取信息的渠道了。
Api就算防,也不是防止别人知道你的api,而且防止别人非法通过你的api获取里面的数据
那么vue这种项目,用session还是cookie储存用户状态。
https是在什么时候加密数据
首先,session是存在于服务端的存储用户状态的东西。cookie是在客户端保存数据的东西。二者完全不是一回事。
但通常我们配合使用,在客户端用cookie保存一个sessionID,用户每次发请求到后端都带着这个sessionID,后端接收到请求后根据这个sessionID再从不管缓存也好、memcached之类的缓存工具也好里面拿出对应的session数据使用。
https是协议层的东西,通常公司的运维、it工程师搞定,当然如果你确实需要了解,可以网上查资料
vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全的更多相关文章
- vue 中使用 AJAX获取数据的方法
在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: <script type="text/javascri ...
- jquery通过ajax获取数据,控制显示的数据条数
效果图: 现在我们可以先看它的json数据,如图所示: 然后可以对应我们的代码进行理解. jquery通过ajax获取数据,并通过窗口大小控制显示的数据条数,以及可以根据 ...
- jquery.ajax和Ajax 获取数据
前几天接触了jquery 看到里面ajax的部分,自己也不是很懂,然后有重复看了即便,然后写了一个小功能,分享下...我刚学的.有错误的请指教. 验证用户名是否存在 在checkname_jqajax ...
- node.js之用ajax获取数据和ejs获取数据
摘要:学了node之后有时候分不清前台和后台,今天用ajax和ejs来从后台获取数据,没有数据库,用json数据来进行模拟数据库:来区分前台和后台需要干什么? 一.用ejs获取数据 1.文件目录 2. ...
- 获取链接的参数,判断是否是微信打开,ajax获取数据
//获取链接参数function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + " ...
- select2 AJAX获取数据
页面效果: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...
- debug - vue中通过ajax获取数据时,如何避免绑定的数据中出现property of undefined错误
因为获取服务器是异步的,所以 vue 先绑定数据. 如果 ??? 是通过 ajax 异步获取的,在获取之前,???是未定义的.此时在外面的标签上添加一个 v-if="???" 可以 ...
- 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- [NodeJs] 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
随机推荐
- [E::hts_idx_push] NO_COOR reads not in a single block at the end 10 -1
在分析转录组数据时,用bowtie2比对生成的bam文件,下一步call peak使用m6Aviewer,需要bam文件的index文件.所以我直接敲命令 samtools index xx.bam ...
- JavaScript的DOM编程--12--innerHTML属性
innerHTML属性: 1). 浏览器几乎都支持该属性, 但不是 DOM 标准的组成部分. innerHTML 属性可以用来读, 写某给定元素里的 HTML 内容 <html> < ...
- tomcat发布项目绑定域名总结
现在很多的公司的网站都是用tomcat作为应用服务区的,可是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一起的呢?一个tomcat是如何绑定多域名?并且这些域名是如何对应不同的项 ...
- 进程管理工具Supervisor(一)简介与使用
Supervisor是用Python开发的一套client/server架构的进程管理程序,能做到开机启动,以daemon进程的方式运行程序,并可以监控进程状态等等. linux进程管理方式有传统的r ...
- C#设计模式之一单例模式(Singleton Pattern)【创建型】
一.引言 看了李建忠老师的讲的设计模式已经有一段时间了(这段时间大概有一年多了),自己还没有写过自己的.有关设计模式的文章.这次想写一些关于设计模式的文章,用自己的理解和代码来写,算是复习一遍 ...
- iOS开发系列
因为最近面试了一些人,校招.初中级.高级.架构师,各种级别的,发现大家水平差异很大,有的高级的工程师很多问题都回答不上来,所以想梳理下iOS的知识点,写成一个系列,如果时间允许的话,会录制成视频放到网 ...
- k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster Cluster 是计算.存储和网络资源的集合,Kubernetes 利用这 ...
- http请求参数中包含特殊字符的严重后果,比如:#
URL请求中不能包含特殊符号,比如:# 今天在调接口,突然发现接口参数中传递的数据没有完全接收到controller层的model模型中,反反复复测了好几遍,真不信这个邪了,头晕脑胀的时候才关注到UR ...
- 用纯CSS画大白
纯CSS打造网页大白知识点: 首先要把大白分割,整体baymax中包含header(eye1,eye2,mouth),torso(heart),belly(cover),l-bigfinge ...
- JAVA 将图片转换为Base64编码
这里使用的jar包是commons-codec-1.10.jar; 示例代码 import java.io.FileInputStream; import java.io.FileOutputStre ...