vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

https://segmentfault.com/q/1010000005618139

vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

点击提交,发送请求。
但是api:123用于加密的参数,直接暴露了。右键源代码就可以看到

vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

 
<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的人必须登录啊,或者有相应权限啊什么的。

否则如果仅仅是大众数据,本来也是给人看的,那能防得住么?

还有一点你没搞清楚,信息安全重点在信息,但你理解成获取信息的渠道了。

Api就算防,也不是防止别人知道你的api,而且防止别人非法通过你的api获取里面的数据

那么vue这种项目,用session还是cookie储存用户状态。
https是在什么时候加密数据

首先,session是存在于服务端的存储用户状态的东西。cookie是在客户端保存数据的东西。二者完全不是一回事。

但通常我们配合使用,在客户端用cookie保存一个sessionID,用户每次发请求到后端都带着这个sessionID,后端接收到请求后根据这个sessionID再从不管缓存也好、memcached之类的缓存工具也好里面拿出对应的session数据使用。

https是协议层的东西,通常公司的运维、it工程师搞定,当然如果你确实需要了解,可以网上查资料

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113686.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MySQL安装及配置详细教程

    MySQL安装及配置超详细教程首先下载安装包[网址](https://dev.mysql.com/downloads/file/?id=476233)进入页面后可以不登录。后点击底部”Nothanks,juststartmydownload.”即可开始下载。安装:直接把压缩包解压到你想安装的路径即可,相当于不用安装,可以看到我的解压路径在D盘的ROUTE文件夹下的mysq…

  • windows10更新报错0x80240fff_windows10易升有什么用

    windows10更新报错0x80240fff_windows10易升有什么用win10更新错误0x8000ffff处理方法:1.同时按下Windows键和R键,打开运行,输入services.msc;2.找到WindowsUpdate服务项,右键选择禁用;3.打开c:\windows\SoftwareDistribution\datastore,删除datastore和和Download两个文件夹下的所有文件;4.按照1和2的步骤开启WindowsUpdate服务,重新检查更新;如果不行用下法试试:右键点击开始——命令提示符(管理员),输入以下命令尝试修复。dism

  • 分享psd格式怎么预览的方法和psd文件缩略图插件[通俗易懂]

    分享psd格式怎么预览的方法和psd文件缩略图插件[通俗易懂]内容提要:文章对psd文件格式进行了使用说明,另外关于psd格式怎么预览的问题提供了一个补丁供学习者使用,需要这个psd格式预览补丁的朋友直接下载按说明文件进行操作。 Photoshop教程中制作的文件就是PSD文件。PSD文件格式可以将制作文件时所用到的图层、蒙版、通道等等信息全部保存起来,也就是说PSD文件是可再次编辑的文件。对PS感兴趣想学习交流的朋友可加PS学习交流群:14257

  • 在IIS上部署ASPNETMVC Beta网站[通俗易懂]

    在IIS上部署ASPNETMVC Beta网站[通俗易懂]在IIS上部署ASPNETMVCBeta网站在IIS上部署ASPNETMVCBeta网站,实际上和在IIS上部署其他类型的网站并没有太大的区别。个人觉得唯一比较有意思的是在配置IIS时,我们可以配置各种自定义的ISAPI扩展名(也在MVC应用配置的,通常在Global.asax中)第一步:安装MVC。当然,首先要下载MVCBeta,下载链接。安装的前提是.NETFramew

  • win ce 编译运行自定义控件提示:Result code: 0x80040154 错误解决

    win ce 编译运行自定义控件提示:Result code: 0x80040154 错误解决

  • java二维数组查找

    java二维数组查找问题:在一个二维数组中,每行每列都递增排序,在这个数组中查找一个数字,如果存在返回true,否则返回flase。分析:数组查找一直都是初学java的同学的热门考点,关于查找主要有顺序查找、二分查找、哈希表查找、二叉排序树查找。我们看下下面这个数组,数组满足每行每列都是递增顺序。在这个数组中查找某个数,如果存在,返回true和所在位置。否则返回flase。这里我们该选择什么样的方式来…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号