maxlength就安全了吗?

博客围绕输入框的size和maxlength属性展开,提到一些文章认为用maxlength限制输入长度可防御SQL注入。通过注册表和拓展输入框文件的操作,对输入框限制进行测试,结果表明客户端限制易被突破,强调限制输入资料需在服务器端处理。

<input type="text" name="name" size="4" maxlength="5">这行东西只要是作过网站开发的人都是很熟悉的东西了,其中size和maxlength是限制显示长度和输入字数大小。
我在一些SQL注入的防御文章里有提到在输入框里用maxlength来限制输入长度就可以防御SQL注入了。但是,下面的东西将会打破这个想法。

【注册表资料】
[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt/拓展输入框]
@="C://拓展输入框.htm"
"contexts"=dword:00000004

【拓展输入框.htm的原码】
<script language=vbs>
set srcevent = external.menuarguments.event
set doc=external.menuarguments.document
set ele=doc.elementfrompoint( srcevent.clientx, srcevent.clienty )
if ele.type ="text" or ele.type="password" then
  ele.maxlength=2147483647
  ele.size=150
end if
</script>

【安装操作方式】
一、将“注册表资料”存成reg文件,然后导入到注册表内。
二、把“拓展输入框.htm的原码”保成拓展输入框.htm放在C:盘根目录。
三、重启IE浏览器,在输入框里点右键查看菜单能看到“拓展输入框”字样即可。

【测试】
将<input type="text" name="name" size="10" maxlength="5">存成HTML文件,双击打开,先试试,输入五个以上的字符测试限制是否有效。
然后在输入框上点右键选择"拓展输入框",哈,看到了什么,输入字符试试。

【本文目的】
在客户端的东西几乎就是掌握在用户手里。所以,如果要限制输入的资料,一定要在服务器上作处理。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值