是否有不支持maxlength的浏览器?
我在我公司的网站上有一个竞赛入口页面。为了参加比赛,您创建一个登录名,这只是一封电子邮件和一个4位数的图钉。这是PIN字段:
<input type="password" name="contest_pin" id="contest_pin" maxlength="4" />
当用户提交表单时,帐户将在我们的数据库中创建,然后他们会收到一封电子邮件(我已复制),其中包含他们创建的电子邮件地址和PIN。
问题在于:在我测试过的每个浏览器中(Mac上的Safari / Chrome / Firefox,Linux上的Chrome / Firefox,Windows上的IE7 / 8/9)我都不能在该PIN字段中输入4位以上的数字。然而,我收到的几封电子邮件显示用户创建了一个超过4个字符的引脚。
这怎么可能?是否有不支持maxlength的浏览器?我没有在Opera或任何移动浏览器上测试过。如果它们的引脚长度超过4位,那就没什么大不了的了。数据库将接受更多。我只是想知道他们是如何设法绕过maxlength的。
编辑添加
有太多的答案基本上对我说同样的事情来对所有人做出回应。我知道我应该总是对任何重要的事情进行服务器端验证,并且我们确实有PHP代码清理我们的数据,如果它非常重要,我也会有PHP代码强制执行4位数的限制。对我们而言,它们只有4个字符并不重要,所以我没有强制执行它。我只是想知道为什么maxlength属性没有按照它的设计去做,这会阻止用户输入超过一定数量的字符。对于那些建议使用恶意脚本或Firebug的人,我可以100%确定不是这种情况。只有我们网站的注册用户(仅限于非常具体的企业会员名单)甚至可以进入竞赛入口页面,我可以保证该名单上的大约100名参与者都不会刻意试图规避输入类型属性。
没有找到相关结果
已邀请:
6 个回复
漂汀拦
结尾的URL。没有什么可以阻止我将该URL更新为
并按Enter键。使用POST操作可以完成类似的操作,但需要一个工具来完成它。
部窖空
蓟类
古擅坛犯
不应被视为确保投入的手段。任何客户端都不在您的控制之下,它只是为了使用户界面更直观,更具交互性。您应该始终检查服务器上的所有内容。在这种情况下,PIN由4位数组成,否则拒绝输入。黄金法则是将所有用户输入视为恶意,并在服务器上对其进行彻底验证。
马口
埃输林桨铃