zoukankan      html  css  js  c++  java
  • 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、服务端一定要验证了才能操作数据库,不然很容易被客户端发起请求非法操作数据库,比如刷金币?

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

    二、内容在总结中

     
  • 相关阅读:
    使用H5Stream实现rtsp流播放,并整合到web项目中
    浏览器通过RTSP协议取流实时显示在web页面(海康威视大华摄像机实时监控)
    Python-----获取excel的所有sheet页,并获取每个sheet页的内容
    MySQL表结构导出成Excel
    Hive 是什么?场景? vs RDBMS
    Scala “_” 的用法总结
    Hadoop主要组件知识点梳理
    javaIO:RandomAccessFile
    javaIO:IO和File
    java io 详细代码实现 纪录
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11870232.html
Copyright © 2011-2022 走看看