javascript入侵业务安全浅谈

        大家好,等会我说的大家可能都已经遇到过了,也或许没有遇到过,再或许没有从这方面考虑过.接下来我们通过一个小例子来说明一下。

        我们在每个项目中,几乎都会用到[checkbox]组件。比如批量删除,批量审核等等...,举个简单的例子,如下图:

       

        这是一个简单的批量删除演示,大家可以看到其中"李四"和"刘六"二人是禁止删除的,因为其对应的checkbox组件是禁用的。此我们稍微考虑一下,我们能否在浏览器端将李四对应的checkbox修改成可用。如果能那显然就破坏了正常的业务逻辑和系统的安全性,当然有人会说我会在后台验证,对没错!但我们今天只是拿来讨论一下前台的东西*^_^*

        大家肯定都晓得可用在地址栏直接运行js代码,不过大家有想过通过在地址栏运行的js代码来改变页面中某些组件的状态或者value吗?

        我们先看一下对应上面那个批量删除的HTML代码:

xml 代码
        a  href = "#" > 添加 a>      <a href="#">删除a>   < hr   size = "1"   width = "100%" >    < input   id = "isDel"   type = "checkbox" value="张三" >   张三   男  石家庄  本科 < br >    < input   id = "isDel"   type = "checkbox" value="李四"   disabled = "disabled" >   李四  女  太原市  专科 < br >    < input   id = "isDel"   type = "checkbox" value="王五" >   王五  女   北京市    硕士 < br >    < input   id = "isDel"   type = "checkbox" value="刘六"   disabled = "disabled" >   刘六  男  石家庄  博士 < br >   

         我们可用看到checkbox的id为[isDel],此时我便可用通过id在地址栏得到该对象。比如我们使用document.all.isDel来得到的是一个数组,包含了上面四个checkbox,同样我们也可以得到具体的某个checkbox。比如document.all.isDel[1],用这句代码来得到对应李四的checkbox,因为数组下标是从零开始的。如图:

       

         我们在得到该对象之后想再修改其状态或修改它的value就易如反掌,我们只需运行alert(document.all.isDel[1].disabled="") ;就可用将李四的禁止删除状态改为可用删除状态,如图:

        

        这样看来李四就可用删除了,当然,前提是你后台的验证不是很完善的情况下,所以这也对我们的后台验证提出了更高的要求。这里说明一下在地址栏运行javascript的时候一定使用alert语句,呵呵,如果不使用的话可用自己试一下效果。

       写这篇短文也没有别的意思,就是想和大家讨论交流一下类似的问题,像这种情况举一反三可用落实到很多具体的场景,也不仅仅局限于checkbox这种组件。如果有业内的大牛对这方面有研究那就和我们分享一下吧。

       谢谢您耐心看完此文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值