js前端验证和绕过

一、js前端验证

本篇基于上篇,修改了form.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8
 9 </head>
10 <body>
11     <form method="POST" onsubmit="return check(this)">
12         {{info.string()}}
13         {{info.sub()}}
14     </form>
15     <script>
16         function check(f){
17             var str=f.string.value;
18             var c=new Array(‘script‘,‘<‘,‘>‘,‘input‘,‘img‘);
19             for(var i=0;i<c.length;i++){
20                 if(str.indexOf(c[i])!=-1){
21                     alert("存在敏感字符:"+c[i]);
22                     return false;
23                 }
24             }
25             return true;
26         }
27     </script>
28 </body>
29 </html>

就是简单的敏感字符对比,如果存在敏感字符就停止提交表单。

如果输入敏感字符串,会提示:

接下来演示前端验证绕过:

1.配置Brup Suit代理,Brupt suit绑定至本地1234号端口进行监听:

配置火狐浏览器,使其所有的流量交给127.0.0.1:1234代理:

2.拦截并修改HTTP请求

将最后的string=Hello+from+XSS修改为下面内容(这里注意两边带反斜杠或引号,否则不执行):

这样就绕过了前端验证,触发了js代码。

原文地址:https://www.cnblogs.com/devlige/p/8440736.html

时间: 2024-08-02 16:29:54

js前端验证和绕过的相关文章

js前端验证时间大小

replace(/\-/g, "\/")是根据验证表达式把日期转化成长日期格式 1 function checkStartTimeAndEndTime(startTime, endTime) { 2 var sTime = new Date(startTime.replace("/\-/g", "\/")); 3 var eTime = new Date(endTime.replace("/\-/g", "\/&qu

JS前端验证代码

手机号码正则表达式验证: function checkPhone(){ var phone = document.getElementById('phone').value; if(!(/^1[34578]\d{9}$/.test(phone))){ alert("手机号码有误,请重填"); return false; } } 或者 function checkPhone(){ var phone = document.getElementById('phone').value; if

Javascript配合jQuery实现流畅的前端验证

做前端时一般都习惯用JavaScript进行表单的简单验证比如非空验证和正则表达式验证,这样过滤后的数据提交到服务端再由专门的控制器做数据处理,这样能减轻服务器的负担,下面看一下前端验证的简单步骤: 首先举一个简单的表单作为例子: 1 <form action="query.php" name="form1" method="get" target="_blank"> 2 <label>请输入要查询的内

jQuery结合Ajax实现简单的前端验证和服务端查询

上篇文章写了简单的前端验证由传统的JavaScript转向流畅的jQuery滑动验证,现在拓展一下,使用Ajax实现用户体验比较好的异步查询,同样还是从建立一个简单的表单开始 1 <form name="form2"> 2 <label class="style1">请输入要查询的内容:</label> 3 <br /> 4 <br /> 5 <input name="neirong&quo

简单的jQuery前端验证码校验

简单的jQuery前端验证码校验2 html; <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-widt

2019手机号码JS正则表达式验证实例代码

这篇文章主要介绍了2019手机号码JS正则表达式验证实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 简介 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符

任务49:Identity MVC:Model前端验证

任务49:Identity MVC:Model前端验证 前端验证使用的是jquery的validate的组件 _ValidationScriptsPartial.cshtml 在我们的layout里面有RenderSection 所以我们可以在Login页面增加上.在登陆页面的最下方 @section Scripts{ @await Html.PartialAsync("_ValidationScriptsPartial") } 点击登陆是没有任何的网络请求的.是通过js去验证的 Re

js 验证表单 js提交验证类

js 验证表单 js提交验证类 附加:js验证radio是否选择 <script language="javascript">function checkform(obj){for(i=0;i<obj.oo.length;i++)         if(obj.oo[i].checked==true) return true; alert("请选择")return false; }</script><form id="f

闲话js前端框架(2)——庞大的angularjs

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 二.庞大的angularjs Ang