首页 > 其他分享 >JS前端验证

JS前端验证

时间:2023-11-14 22:12:55浏览次数:40  
标签:浏览器 登录 验证 前端 JS 数据包 代码

验证上传文件的是否符合要求既可以通过前端js代码验证,也可以通过后端PHP代码验证

他们的区别如下:

前端的任何代码都可以被检查网页源代码检测出来

后端的任何代码在没有拿到源码之前都无法被识别出来

通过禁用JS代码可以绕过js的前端验证

判断前端验证是否为JS代码:

1.直接查看网页源代码

2.通过时间戳判断

2、状态回显 - 登录 - 状态码

设计:通过 Ajax 传递数据进行用户登录验证

Ajax的基本架构:

$.ajax({
url:"发送请求(提交或读取数据)的地址",
dataType:"预期服务器返回数据的类型",
type:"请求方式",
async:"true/false",
data:{发送到/读取后台(服务器)的数据},
success:function(data){请求成功时执行}, //此步产生状态码
error:function(){请求失败时执行}
});

Ajax(Asynchronous Javascript And XML),即是异步的JavaScript和XML,Ajax其实就是浏览器与服务器之间的一种异步通信方式

 

异步的JavaScript

它可以异步地向服务器发送请求,在等待响应的过程中,不会阻塞当前页面,在这种情况下,浏览器可以做自己的事情。直到成功获取响应后,浏览器才开始处理响应数据

XML

是前后端数据通信时传输数据的一种格式,现在已经不怎么用了,现在比较常用的是 JSON

 

所以归纳上述的概念,Ajax就是在浏览器不重新加载网页的情况下,对页面的某部分进行更新

 

Ajax数据传递方式:

浏览器客户端->发送登录数据包->服务器处理->服务器发送响应数据包,响应数据包包含了登录状态码->浏览器客户端接收返回数据包->浏览器客户端根据登录状态码判断是否登录成功

在视频的例子中,通过抓取返回数据包,修改返回数据包的登录状态码,即使不输入正确的账号密码也能实现登录操作。

如果是php处理数据并且发送回浏览器,则没有登录状态码,返回的数据是登录成功或者失败的页面。

简单来说,就是ajax在接收到服务器返回的数据后会进行进一步的操作处理,从而确定页面最终的状态,但是常规的PHP代码执行后,浏览器不会对返回的数据包进行进一步的解析处理,即使修改了返回的数据包对页面的状态也不会产生任何影响。

如果通过修改了返回数据包从而对ajax文件造成了影响,并且控制登录的就是该文件,才有可能攻击成功,反之,如果控制登录的文件不是ajax而是其他的文件,那么未必能登陆成功。

也就是说,如果能通过直接修改代码文件接受的可控变量,并且接收的变量继续在该文件执行,才有可能攻击成功。

在本例中,修改了登录状态码的值,并且浏览器处理数据的时候是通过ajax文件来执行登陆操作,修改后的登陆码可以直接利用,跳转到登陆后的url界面。

这就是代码逻辑产生的问题。

 

3、参数修改 - 购物 - 参数修改 设计:通过 Ajax 传递数据进行购物验证

设计 1:商品价格以前端设置价格为准,数据接收价格后运算

抓取数据包篡改数据即可以绕过前端验证。

设计 2:商品价格以数据库对应价格为准,数据接收价格后运算

此案例中,前端代码接收数据库价格数据并且发送,后端代码接收前端发送的价格数据,但是后端控制代码并没有从数据库中取出数据,所以同样也可以通过抓取数据包篡改数据来达到攻击目的。但是如果后端代码不从前端接收价格,而是从数据库中直接接收价格,那么此攻击将无效。

设计 3:商品价格以数据库对应价格为准,数据只接受数量后运算

修改了数据包中的商品价格,依然不影响最终结果,因为后端直接接收数据库中的商品数据。

但是

如果将购买数量修改为非正整数,那么此时将依据计算机自主判断,例如,数量=0.01,-1,0.09等。

设计 4:商品价格以数据库对应价格为准,数据只接受数量后做过滤运算

 

今天有关的内容主要是介绍了前端语言传递信息的过程。其中涉及到了代码逻辑存在的漏洞和可操作空间,如果进行验证的是前端验证,服务器返回给浏览器一个状态码,并由浏览器通过状态码进行进一步判断从而决定下一步的回显页面,存在篡改接收数据从而达到目标的操作。

如果返回结果是json文件,数据包中存在code,msgbox这样的字段,那么大部分都是前端验证

标签:浏览器,登录,验证,前端,JS,数据包,代码
From: https://www.cnblogs.com/sowrd9/p/17832712.html

相关文章

  • Hive_解析 get_json_object
    get_json_object(stringjson_string,stringpath)说明: 第一个参数填写json对象变量,第二个参数使用$表示json变量标识,然后用.或[]读取对象或数组。如果输入的json字符串无效,那么返回NULL。 每次只能返回一个数据项。举例: data为test表中的字段,数据结构如下:......
  • js处理前端页面复选框多页复选同时生效的问题
    虽然是后端开发,但在实际的工作中难免会碰到一些前端相关的任务需要自己处理,下面就是本人开发工作中处理的前端相关分页复选的问题。总结一下,以备日后重复遇到:<scripttype="text/javascript">//初始化数据$(function(){$('#queryButton').removeAttr('disabled'......
  • 深入理解JMeter中的JSON Extractor
    ApacheJMeter是一款出色的开源性能和功能测试工具,这款工具提供了丰富的功能和强大的扩展性,可以应对各种复杂的测试需求。当我们在进行接口测试时,经常会遇到需要从接口响应中提取信息并在后续请求中使用的情况。这时候,JMeter中的JSONExtractor就派上了用场。JSONExtractor是JMe......
  • 前端学习-JavaScript学习-JavaScript高级程序设计-第2章笔记
    在HTML中使用JavaScript元素<script>元素元素属性MDN<script>:脚本元素属性使用状态描述charset可选、少用字符集defer可选、少用表示脚本可以延迟至文档完全被解析后实行,部分浏览器不支持language废弃编写代码使用的语言src可选包含要执行代码的......
  • js 大文件分割/分片上传
    <!DOCTYPEhtml><html><head><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>uploadFile</title><style></style></head><body>&......
  • VUE 前端读取excel表格内容
    <el-uploadclass="upload-demo":action="''":show-file-list="false":auto-upload="false":before-upload="beforeUpload":on-success="handleSuccess&quo......
  • 轻量级前端架构之:小程序技术
    小程序技术自微信2016年提出并大力推动,如今已经成为了中国前端研发的“潮流”,或者说是“趋势”。早期,微信小程序是微信公众平台推出的一种应用形态。微信小程序开放平台允许开发者在微信内直接开发和发布应用,用户无需下载安装,即可在微信中使用。 之所以推出小程序技术,是为了......
  • 基于FPGA的图像中值滤波开发,包括tb测试文件以及matlab验证代码
    算法运行效果图预览   通过MATLAB调用FPGA的仿真结果,显示滤波效果:   2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述         基于FPGA的图像中值滤波是一种在图像处理中常用的滤波技术,其原理是通过一定的算法将图像中的噪声平......
  • WebGL_0019:three.js 欧拉角和四元数
    1,这篇说说欧拉角和四元数,欧拉角和四元数的优缺点是老生常谈的话题了,使用条件我就不多说了,我只说一下使用方法。1.欧拉角(Euler)欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体。下面我们开看看它的方法1.set(x:number,y:number,z:......
  • JavaScript - js生成 txt 文件
    JavaScript-js生成txt文件/***方法定义*/functiondownload(filename,text){varelement=document.createElement('a');element.style.display='none';varcontent=encodeURIComponent(text);element.setAttribute('href&#......