演示一个最简单的JavaScript客户端验证的漏洞
2013-05-14 12:29
375 查看
很多时候我们都有JavaScript在客户端做验证,比如必填选项,格式验证等,如果不合法则不让表单提交。但是对于重要的信息如果不在服务器端再做一次验证,是很有风险的。下面的简单示例证明了这一点。
HTML文件如下,页面上有两个文本输入框,一个的id是name,一个id是sechole。JavaScript在客户端对name做检查,简单起见,这里的验证规则是必须填值。验证通过后提交到服务器端的一个servlet。
通过浏览器的一些插件,如firefox的firebug,将sechole的id改为name,将name的id改为别的值,则可以"骗"过浏览器的JS验证。如下图,name的输入框没有填值,在security hole的框里填上值,则可以通过验证,并且成功提交。
HTML文件如下,页面上有两个文本输入框,一个的id是name,一个id是sechole。JavaScript在客户端对name做检查,简单起见,这里的验证规则是必须填值。验证通过后提交到服务器端的一个servlet。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>js security hole</title> <script language='javascript'> function checkInput(){ var name = document.getElementById("name"); if(name.value.length==0){ alert("name invalid"); return false; } return true; } </script> </head> <body> <form action="xxx.test" method="post" onsubmit="return checkInput();"> <label for="name">name</label><input id="name" name="name" type="text"><br> <label for="sechole">security hole</label><input id="sechole" name="sechole" type="text"> <br> <input type="submit" value="submit"> </form> </body> </html>
通过浏览器的一些插件,如firefox的firebug,将sechole的id改为name,将name的id改为别的值,则可以"骗"过浏览器的JS验证。如下图,name的输入框没有填值,在security hole的框里填上值,则可以通过验证,并且成功提交。
相关文章推荐
- 让客户端javascript修改的内容在服务端也能记忆的一个简单例子
- <Javascript>利用for循环制作一个简单的邮箱格式验证
- 一个简单的前端JavaScript手机号码输入验证方案
- JSP中用JavaScript简单客户端验证
- JavaScript一个简单的验证页面
- 一个简单的用javascript验证表单的例子
- 一个简单的JavaScript表单验证框架
- 常用的JavaScript验证正则表达式(转,附加一个“HTML元素事件简单解析”)
- 一个简单的HTML表单及JavaScript验证
- 使用JavaScript与servlet实行简单的客户端和服务器验证
- google map api javascript xml 生成一个简单的地图
- Golang的一个简单实用的http客户端库httpc
- 一个简单的Android客户端从服务器端获取json数据并解析的实现代码
- 实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站
- 一个PHP写的简单webservice服务端+客户端
- 一个简单的IOCP(IO完成端口)服务器/客户端类
- JavaScript,一个超级简单的方法判断浏览器的内核前缀
- 基于Eclipse Maven的Spring4/Spring-MVC/Hibernate4整合之八:一个简单例子演示Spring-MVC中多种参数传递方式
- 提供一个通用的Javascript验证页面输入的脚本给大家,并希望大家提意见呀
- PERL-MOJO写一个简单的登录验证页面