+ -
当前位置:首页 → 问答吧 → firebug对web应用的考验

firebug对web应用的考验

时间:2009-04-22

来源:互联网

我想做web开发的程序员都知道firebug吧!现在IE8里面也有了一个类似的工具。这两个工具对web开发者来说,可所谓是“利器”。通过他们,你可以轻松查看web页面上的元素,元素属性,元素值,元素样式,和页面用到的JS。 你也可以通过在这个工具里面,修改样式,设置JS断点等操作。总之,对web开发者来说,这个工具“很好很强大”。


    但是,你可曾注意到,这个工具还有一些其他的用途?其他一些“不利于”我们开发者的用途(注:此处“不利于”加引号,意味着并不是真的不利于)?我只想举几个例子,这些个例子来源于工作经验中,我想与诸位分享,希望诸位以后不要被同样的问题所烦恼。

    1. 举个例子,假如有一个帖子列表页面,在每个帖子前,都有一个复选框。通过选择复选框来达到一个删除多个帖子的功能。 那么,我们怎么做呢??我想,大家可能用的最多的就是,把每个复选框的值设置成该帖子的ID,然后,在后台数据库删除这些ID所指向的记录。   那么问题就来了,假如我用firebug把其中的一个ID值修改了怎么办??如果修改ID后该ID指向的记录不存在或者该记录本来就属于当前登陆用户,那还好;但是,如果该帖子是别人的呢??那结果就是,当那个用户登陆的时候,会发现自己的一些东西“不翼而飞”。 而以我之愚见,解决该问题的方法就是,在数据库删除的时候,一定要加一个WHERE条件,就是记录的uid等于当前登陆用户的uid。这样,就不会造成我的帖子被别人删除的问题了。

    2. 你可曾看到过一些论坛,其中的某些帖子是禁止回复的?那么,禁止回复的方式呢??有的是你根本看不到回复表单;这样还好;有的是回复表单的提交按钮为灰色,不可点;这样就有问题了。 我可以很轻松的用firebug找到该表单的ID,然后调用其submit()方法,强行提交表单。那么,强行提交后,会发生什么情况呢??各位在开发类似功能的时候可曾考虑到??


    这些就是我的一些经验,其实这些并不一定要用firebug才能完成,只是有了这个工具后,做这些事情变得更加简单起来,也就会有更多的人采用这种方法来“考验”你的网站。那么,你的网站经得起考验吗???

    PS:我曾经在百度的贴吧里面找到过一些不允许回复的帖子,然后用firebug修改回复表单的标题,内容,最后用submit()提交,结果,显示给我的是一个写满了代码的页面。。。。。。。。。。

作者: mqh21364   发布时间: 2009-04-22

只能说firebug是楼主的导火索,从而引发安全性的思考。

如果没有firebug,其实是一样的,不论是get还是post方法都能通过伪造url或者表单进行提交,所以服务端的判断是必须的。

至于客户端比如楼主说的禁止回复,然后表单disabled了,这只是方便客户端提醒,告诉用户这里禁止了,服务端程序禁止不禁止不是靠这东西的。就是靠程序判断的。

就像注册帐号的时候,现在都会在表单旁边显示正确或者错误,有的先用js判断,提交之后服务端还是要再判断的。客户端是给客户爽,服务端是给自己

作者: 阿辛   发布时间: 2009-04-22

js做验证,本身就是一种建议性的

作者: laruence   发布时间: 2009-04-22

1楼说得对,只能说在以前,我对安全性的考虑少了点而已。接触firebug后,才发现原来需要考虑的东西这么多。。。。

作者: mqh21364   发布时间: 2009-04-22

因为firebug才对form post数据可能被修改产生顾虑么……其实firebug能做的,黑客GG们N年前就已经能做了。

作者: litcat   发布时间: 2009-04-23

这问题提的不错

作者: yushine   发布时间: 2009-04-23

是啊,以前一直很相信POST值,现在明白了,不能相信用户的所有输入,不管是以什么样的方式提交过来的。

作者: mqh21364   发布时间: 2009-04-24

是的,无论有没有这个工具,我们都必须在服务端和客户端都进行验证

作者: smartfoxbaby   发布时间: 2009-04-26

因为firebug才对form post数据可能被修改产生顾虑么……其实firebug能做的,黑客GG们N年前就已经能做了。
litcat 发表于 2009-4-23 17:09
firefox好像有一个黑客插件,专门检测sql注入呀 发送 post get的
很方便;

作者: 木頭   发布时间: 2009-04-27

没图片  没意思

作者: yangfan   发布时间: 2009-04-27

什么东东,没明白

作者: f19861211   发布时间: 2009-04-28

其实对于这些禁止的, 本身就应该在程序中直接控制, 让用户没有可乘之机

无需还在页面采用disable或者display:none之类将其功能灰化或隐藏

个人之见

PHP开发小站:http://www.phpcoding.cn

作者: chcn001   发布时间: 2009-04-29

给客户端的很多限制如同虚构

作者: 扑街仔   发布时间: 2009-04-29

道高一尺,魔高一丈!

作者: luzhou   发布时间: 2009-05-02

这应该说是FIREBUG给开发者警醒,不然很多人以为JS做了限制就万无一失

作者: efansonline   发布时间: 2009-12-28

这和Firebug没什么联系吧, Firebug只是把一些已经存在的东西很直观的反映出来

作者: hzzzhi   发布时间: 2009-12-29