• legend3---16、网站的安全性问题


    legend3---16、网站的安全性问题

    一、总结

    一句话总结:

    通过客户端传递参数的方式也是有些危险,需要注意
    单纯的获取数据的方法还好,但是 修改数据库方法一定要同时做前后端验证

    1、php的blade语法是可以和vue混用的?

    因为解析php在服务端,比解析vue早很多,解析vue在客户端

    2、用户数据(比如用戶表的)转化为json之后能够直接传给window对象吗:比如 window.user={!! json_encode($user) !!};?

    不能,因为这样,用户的数据就会跑到客户端去了,这种敏感数据的话就太危险了

    3、连表的时候如果把用户的信息弄出去就太危险了?

    连表的时候不要user.*

    4、传参数数据到页面,如果用户改了数据,那么他预期的就是错误的结果,这样对他和正常用户都没有影响?

    还是推荐使用页面做数据的参数,也就是可以把数据传到页面,而不用session
    只是单纯的获取数据(非敏感),完全就可以将参数传递到客户端

    5、对有多种访客权限的页面(比如个人中心页,粉丝页,关注页)都要增加路由参数,而不能只用session?

    只用session的话用户在进进退退之间容易出问题
    如果对每个多种权限的页面弄一个session的话,就不会出错了

    6、每个 多种访客权限的页面 鉴别身份的变量 不要互用?

    比如粉丝页 就不能用个人中心页 的鉴别用户身份的变量来鉴别用户的身份

    7、监听回车事件(搜索框)?

    $("#navbar-search-input").keypress(function(event){if(event.which === 13) { /*要执行的代码*/ }})
    <form class="navbar-form navbar-left" role="search">
      <div class="form-group">
          <input type="text" data-url="{{url('/search_lesson')}}" class="form-control" id="navbar-search-input" placeholder="找课程">
      </div>
    </form>
    {{--找课程回车键事件--}}
    <script>
        $(function () {
            //$("#focus")为获取id为focus的元素
            $("#navbar-search-input").keypress(function(event){
                if(event.which === 13) {
                    //点击回车要执行的事件
                    let search_content=$('#navbar-search-input').val();
                    let url=$('#navbar-search-input').data('url');
                    url=url+'/'+trim(search_content);
                    window.location.href=url;
                    //console.log(search_content);
                    console.log(url);
                    return false;
                }
            })
        });
    </script>

    8、adminlte模板中的search框默认有事件,如何阻止它默认的事件?

    直接在自己的事情里面return false,因为自己的事件在它的事件前,所以可以阻止发生
    <form class="navbar-form navbar-left" role="search">
      <div class="form-group">
          <input type="text" data-url="{{url('/search_lesson')}}" class="form-control" id="navbar-search-input" placeholder="找课程">
      </div>
    </form>
    {{--找课程回车键事件--}}
    <script>
        $(function () {
            //$("#focus")为获取id为focus的元素
            $("#navbar-search-input").keypress(function(event){
                if(event.which === 13) {
                    //点击回车要执行的事件
                    let search_content=$('#navbar-search-input').val();
                    let url=$('#navbar-search-input').data('url');
                    url=url+'/'+trim(search_content);
                    window.location.href=url;
                    //console.log(search_content);
                    console.log(url);
                    return false;
                }
            })
        });
    </script>

    9、消息的已读和未读如何确定?

    如果是自己打开个人中心页,那么当前所有的消息都是已读
    可以在获取数据之后将消息置为已读

    10、服务端一定要验证了才能操作数据库,不然很容易被客户端发起请求非法操作数据库,比如刷金币?

    数据库的话就先查表,缓存的就查是否有这部分缓存数据

    二、内容在总结中

     
  • 相关阅读:
    Android 懒加载简单介绍
    Android 使用RxJava实现一个发布/订阅事件总线
    Android 第三方库RxLifecycle使用
    Android 使用Retrofit2.0+OkHttp3.0实现缓存处理+Cookie持久化第三方库
    代码雨
    我的第一个博客(My first blog)
    merge法
    如何使用git将remote master上的内容merge 到自己的开发分支上  &  以及将自己分支的内容merge到remote master上...
    git 解决冲突
    Mac安装和破解激活Charles
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11870232.html
Copyright © 2020-2023  润新知