028-JS应用&原生开发&JQuery库&Ajax技术&前端后端&安全验证处理

JS应用&原生开发&JQuery库&Ajax技术&前端后端&安全验证处理

1.参考

1、原生JS教程
https://www.w3school.com.cn/js/index.asp
2、jQuery库教程
https://www.w3school.com.cn/jquery/index.asp

2.JS原生开发-文件上传-变量&对象&函数&事件

  • 1.前端JS进行后缀过滤,后端PHP进行上传处理
  • 2.JS获取提交数据
  • 3.JS对上传格式判断
  • 4.JS对上传格式判断

架构:html js php - upload.php

功能实现:前端JS进行后缀过滤,后端PHP进行上传处理

安全问题:

  • 1、过滤代码能看到分析绕过

    前端js验证:在本地客户端进行验证,查看源码时可以看到相应代码

  • 2、绕过:禁用JS或删除过滤代码绕过

    删除过滤代码:把页面源代码全部扒下来,粘贴进.html文件中,修改相关js过滤函数与

    相关提交表单地址,达到绕过作用

3.JS导入库开发-登录验证-JQuery库&Ajax技术

  • 0、布置前端页面

  • 1、获取登录事件:使用jquerry库

  • 2、配置Ajax请求:浏览器与服务器之间异步通信 https://www.runoob.com/jquery/ajax-ajax.html

  • 3、后端代码验证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $success=array('msg'=>'ok');
    if($user=='xiaodi' && $pass=='123456'){
    $success['infoCode']=1;
    //登录成功处理事件,写在php中较为安全
    echo '<script>location.href="index.php";</script>';
    }else{
    $success['infoCode']=0;
    }
    echo json_encode($success); //输出的回调res值,用于前端接接收判断
  • 4、成功回调判断

    1
    2
    3
    4
    5
    6
    success: function (res){
    console.log(res);
    if(res['infoCode']==1){
    alert('登录成功');
    //登录成功处理事件,写在js中不安全
    // location.href='index.php';

    安全问题:如果是在js中写登陆处理逻辑,则不安全。此处是在js中判断res返回值,如果等于1则登陆成功

    可以通过拦截返回包进行修改相应的值

    在php代码中写入处理逻辑则较为安全

架构:html js login.html - logincheck.php

功能实现:后端PHP进行帐号判断,前端JS进行登录处理

4.JS导入库开发-逻辑购买-JQuery库&Ajax技术

  • 1、布置前端页面
  • 2、获取登录事件
  • 3、配置Ajax请求
  • 4、后端代码验证
  • 5、成功回调判断:写在前端大部分则存在安全隐患

架构:html js shop.html - shopcheck.php

5.实例测试-某违规APP-密码找回&JS验证逻辑安全

密码找回时是在前端进行验证的,只要记录下正确的返回的数据包的相应值,重新修改发包,就可以无手机验证码进行重置密码