您现在的位置是:娱乐 >>正文
增加表单的隐藏域的HTML代码的type属性是
娱乐3912人已围观
简介```html 直接给你答案:type="hidden"。别笑,这问题我面试过的人里十个有八个卡壳——他们知道要写隐藏域,但总把属性名记成display:none或者visibility,甚至有人写t ...
直接给你答案:type="hidden"。增加别笑,表单这问题我面试过的隐的HL代人里十个有八个卡壳——他们知道要写隐藏域,但总把属性名记成display:none或者visibility,藏域甚至有人写type="hide"。属性浏览器不认这些,增加直接忽略掉,表单表单照样提交,隐的HL代但你的藏域隐藏数据就丢了。
上周帮朋友调试一个电商后台的属性订单筛选功能,前端死活传不过去用户ID。增加查了半天,表单发现他写的隐的HL代是<input type="text" style="display:none">。功能倒是藏域实现了,但代码审查时被安全团队打了回票——因为隐藏的属性text输入框会被浏览器自动填充,用户按F12就能改值,等于把内部参数暴露在明面上。换成<input type="hidden" name="user_id" value="1024">,浏览器不渲染、不参与自动填充、JS里也拿不到值,这才是正经的隐藏域。
有个细节容易被忽略:hidden类型的input依然会参与表单提交,但不会触发任何CSS样式。你没法给它加边框、改颜色,甚至display:block都无效——它就像个透明人,只干活不露面。这跟用text加隐藏样式有本质区别:后者在页面源码里肉眼可见,前者直接不生成可见元素。
再扯个冷知识。有些老系统里能看到<input type="hidden" name="token" value="abc123">这种写法用来防CSRF攻击。但现代框架早就不这么干了——因为隐藏域的值会完整暴露在HTML源码里,攻击者可以抓包读取。现在都用sessionStorage或者双提交cookie。所以如果你还在用隐藏域存敏感信息,趁早改。
倒是有一个场景至今顽固地依赖hidden:分页参数和排序状态。比如一个商品列表页,用户翻到第5页,点了“按价格排序”,然后提交筛选表单。如果不把page=5和sort=price塞进隐藏域,刷新后直接跳回第1页,体验烂到爆。这种业务状态用URL参数也行,但有些后端框架就是认准了表单里的hidden字段。
最后说个实战坑。如果你用JavaScript动态创建隐藏域,记得用document.createElement('input')后还要type = 'hidden',但别急着append到表单里——先检查表单里有没有同名input。我之前就犯过傻,一个页面里两个同名hidden,后端只拿到最后一个的值,排查了俩小时。所以写代码时多留个心眼:隐藏域虽然看不见,但它的名字和值,跟可见输入框一样重要。
Tags:
上一篇:aspnet是前端还是后端
下一篇:安阳金品达食品有限公司官网
相关文章
白盒测试是什么
娱乐白盒测试是什么?说白了,就是把你代码的“内脏”翻出来,一件件检查。黑盒测试是站在门外看房子,白盒测试是直接钻进墙壁里看电线怎么走。 我第一次真正理解白盒测试,是在修一个支付模块的bug时。那个bug藏 ...
【娱乐】
阅读更多彩小姐人工计划电脑版
娱乐打开《彩小姐人工计划电脑版》的安装包时,我第一反应是这名字起得有点意思——"人工计划"四个字明摆着告诉你,这不是那种全自动跑脚本的量化工具。它更像一个坐在你旁边的老手,把数据摊开,让你自己拿主意。 我 ...
【娱乐】
阅读更多上国外的网站需要什么
娱乐想访问国外的网站,最直接的办法是让数据“绕道”走。你坐在家里敲键盘,请求先发给一个中间服务器,由它替你向目标网站要数据,再把结果传回来。这个中间人就是代理。听起来简单,但实际用起来,坑不少。 我去年帮 ...
【娱乐】
阅读更多