`
j_butterfly
  • 浏览: 113687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

做一个有责任心的程序员

阅读更多

  我是从做友财网开始我第一次做放到网外上的程序的,算是个菜鸟了。不过,从做这个网站中,我发现应该有不少的程序员会犯和我一样的错误,对安全性的乎略。

  我也不说什么大的概念了,举一个最简单的例子,一般来说B/S的程序,删除操作都会给后台传一个ID值。很多程序员,会把直接把这个ID对应数据库中的数据删除了,这可能是程序员偷了一个小懒,没有判断当前删除数据的这个人是否有权限删除。可是对于放在外网上的程序来说,这相当给别人在公网上留了一个很大的后门!可能很多人说我说的这个问题大家都知道,可是真正能做到细心判断业务逻辑后再删除的有多少人呢?我去年在北京一家公司上班,这公司主要是做博客和社区的(具体当然不会告诉你们了,嘿嘿),这个公司做的东西,最起码在我上班的那会,我说的这些后门还是留着的!知道了xxx.do之后,传一个ID就可以看一条数据,传一个ID就可以修改一条数据,甚至是删除!

  其实我说这些简单的问题,大家都心里知道,但可能项目进度紧,工作压力大,没有时间去做这块内容,想的以后有时间了再去做。可是真的有时间了,再回过头把这些逻辑再补上的又有多少人呢?当然Web应用程序的安全,不光我说的这么简单这一点,但想给大家说明,至少别把这么大的后门留给所有的网民吧,尤其是像我做的在线记帐的网站的,保护好每个人的隐私,更是我的责任,但国内在线记帐的网站也很多,我试了国内几家做的比较大的,刚说的问题有几家就是没有把最基本的安全性做到!也不知道是程序员水平太低还是责任心太差。。。

  这篇文章不是告诉大家怎么去删除别人网站的数据,是想告诉程序员把最基本的安全性做好,给使用者一个比较安全空间,放心的用软件,我也是我做友财网的原则。不过,有时把安全性做的太好,也会给用户代来不必要的麻烦。。。这个平衡点也要掌握好。。

  友财网是在线记帐的网站,安全性和保密性也是首先和着重考虑的因素,让我们做一个有责任的程序员!把别人的数据和隐私保护好!

  友财网http://www.ucai8.com   

7
6
分享到:
评论
22 楼 j_butterfly 2008-11-26  
wwwcom 写道

Acegi完全可以实现,它提供对数据的保护功能,只不过做起来比较麻烦罢了,一般只用用url拦截

嗯。是的。以前我用过,是很麻烦
21 楼 wwwcom 2008-09-11  
呵呵,我认识你的,顺便说一下,我每次访问你的网站的留言板,第一次都特别慢,有时候慢的不能忍受~~
20 楼 wwwcom 2008-09-11  
Acegi完全可以实现,它提供对数据的保护功能,只不过做起来比较麻烦罢了,一般只用用url拦截
19 楼 j_butterfly 2008-04-24  
引用
觉得很多公司都很浮躁,很多应该重视的东西都忽视了。

嗯。是啊~~现在这个公司的好多程序员,能把功能实现就很不错了,别说程序的质量了,连注释和缩进都没有。唉。。
18 楼 Absolutely 2008-04-22  
觉得很多公司都很浮躁,很多应该重视的东西都忽视了。
17 楼 j_butterfly 2008-04-21  
引用
友财网做的很不错,界面也漂亮,值得学习!

谢谢:)一起进步~
16 楼 for_cyan 2008-04-21  
友财网做的很不错,界面也漂亮,值得学习!
15 楼 bnmcvzx 2008-04-17  
没有在公司里做过,所以也没理由评价什么,不过我想这些应该是程序员的基本习惯吧
14 楼 j_butterfly 2008-04-17  
我想通过这篇文章给大家提个醒,我们写程序要对用户负责~~别让用户的信息轻易 的给别人看~~
13 楼 j_butterfly 2008-04-17  
引用
传值的时候取出当前用户的用户id 每个用户的id跟他的账务有外键关联关系
然后限制只可以操作跟此用户id有关系的账务就可以了这样效率也不会怎么降低的应该比过滤器的效率高

嗯~~我就是这样做的~~
12 楼 bnmcvzx 2008-04-17  
传值的时候取出当前用户的用户id 每个用户的id跟他的账务有外键关联关系
然后限制只可以操作跟此用户id有关系的账务就可以了这样效率也不会怎么降低的应该比过滤器的效率高
11 楼 hax 2008-04-17  
引用
每个人查看帐单的URL都一样,所有都有权限的。

既然url一样,那你怎么看其他人的账单?你的问题根本本身就有矛盾。

to Quake Wang:
你说的是对功能点权限的判断。通常是需要在代码里检查权限。但是也可以借鉴filter的思路,对其进行包装。比如假设功能点直接对应页面上的控件,则你可以直接让控件的基类直接支持权限判断,如果没权限就不显示。这样你无需显式的写权限检查代码了。
10 楼 j_butterfly 2008-04-16  
引用
当然可以用filter控制。filter的作用是两个:
1. 验证。比如看看session里有没有记录userId,没有的话就是没有登录过,拒绝。
2. 权限。根据userId找到其权限,如果该userId没有访问当前url(也可以包括其他条件)的权限,拒绝。

据我了解,Acegi一个是URL级别的,一个是方法级别的。这两个并不能解决我说的问题哦。每一个登陆后,Session中都有userID,但是你只能查看你的帐单,并不能查看别人的帐单 ,这是业务逻辑的判断,可以用Acegi来控件吗?每个人查看帐单的URL都一样,所有都有权限的。
9 楼 QuakeWang 2008-04-16  
filter和acegi也无法避免针对每个功能进行权限校验时候需要写类似的代码,和其他方式相比好处就是可以把这些代码集中到一处或者配置文件里面,但是如果新加一个功能,忘记了在这些集中控制的地方加上一行代码,这个功能点可能又会成为权限判断的死角。说到底还是需要测试来保障。
8 楼 hax 2008-04-16  
引用
但是像我说的,用户只能查看自己的帐单,你用filter能控制的住 吗?因为查看帐单的url都是一样的啊。


当然可以用filter控制。filter的作用是两个:
1. 验证。比如看看session里有没有记录userId,没有的话就是没有登录过,拒绝。
2. 权限。根据userId找到其权限,如果该userId没有访问当前url(也可以包括其他条件)的权限,拒绝。
7 楼 jiangshaolin 2008-04-15  
作为一名新手,我都根本没考虑这方面的.把功能实现出来就OK了
6 楼 j_butterfly 2008-04-15  
引用
一般采用filter来集中控制验证和权限

但是像我说的,用户只能查看自己的帐单,你用filter能控制的住 吗?因为查看帐单的url都是一样的啊。
5 楼 hax 2008-04-15  
一般采用filter来集中控制验证和权限。jguard和acegi都是如此。自己做也没有什么特别难的。
4 楼 魔力猫咪 2008-04-15  
Java其实是有安全框架的,就是大家很少用罢了。这方面的书也比较少。使用像acegi这样的安全框架就可以保护你的应用程序了。
3 楼 j_butterfly 2008-04-15  
业务逻辑的检验,还没有什么框架可以直接用吧?

相关推荐

    程序员如何做导师

    除此之外,做导师对于程序员自身也是一种提升,它能帮助你成为高阶工程师,并且是职业成长的一个重要方向。在指导他人的过程中,你会学到很多新的知识,学生也会将他们的知识和经验反馈给你,这无疑是一种双赢的体验...

    什么样的人适合做程序员?程序员应该具有什么样的素质程序员四大禁忌

    因此,程序员在编写代码时必须保持高度警惕,对每一个细节都进行仔细检查。 此外,勇于挑战难题也是优秀程序员的特质之一。面对复杂的问题,他们不仅不会退缩,反而会感到兴奋,因为解决这些问题正是他们工作的一大...

    程序员一分钟自我介绍范本精选.doc

    同时,该范本也展示了程序员的个人特质,如坦诚、有责任心、独立进取的品性等。 篇二:程序员一分钟自我介绍范本 该范本强调了程序员的专业技能和个人特质,包括计算机硬件与电子专业的根底知识、office办公软件的...

    JAVA程序员简历模板

    JAVA程序员简历模板是一个详细的简历模板,涵盖了Java程序员的基本信息、工作经历、IT技能、项目经验、自我评价和证书等多方面的内容。下面是从这个简历模板中提取的相关知识点: 基本信息 * 个人基本信息:姓名、...

    程序员加薪申请书(最新).pdf

    申请人在工作上保持着良好的工作态度,敬业乐观,认真踏实地工作,始终以自己强烈的责任心进取心,勤勉不懈地努力。 申请人在工作中展示了自己的专业基础和自学能力,不断挑战自己,提高自己的技术水平和工作效率。...

    PHP程序员面试自我介绍.pdf,这是一份不错的文件

    首先,PHP 程序员需要具备良好的职业道德和工作态度,包括工作认真、踏实,责任心和进取心。这是因为,PHP 程序员需要在工作中保持高度的职业道德和工作态度,以确保项目的顺利进行。 其次,PHP 程序员需要具备良好...

    程序员年终总结

    作为一名程序员,年度总结是回顾过去一年工作成果,反思不足,规划未来的重要环节。在这个程序员的2011年终总结中,我们可以提炼出以下几个关键的知识点: 1. **ERP项目编码**:程序员参与了公司企业资源计划管理...

    程序员的岗位职责

    - **热爱编程工作,有敬业精神**:对待工作充满热情,具备强烈的责任感和进取心。 通过上述介绍可以看出,网页程序员不仅需要具备扎实的技术功底,还需要具备良好的职业素养和个人品质。在日常工作中,他们不仅要...

    java程序员简历模板

    3. **自我评价**:强调责任心、问题解决能力、创新意识、团队协作精神和对IT工作的热爱。表达对新技术的热情和愿意吃苦耐劳的态度,以及对成为专业J2EE技术开发专家的渴望。 4. **教育经历**:列出学历和专业,如...

    上海php程序员招聘调查报告

    11. 具备良好的沟通能力和团队合作精神,责任心强。 12. 有强大的管理系统能力与经验。 13. 精通PHP+MySQL开发,熟悉Ajax、JavaScript、Flash、CSS、Html。 14. 熟悉MySQL关系数据库,掌握SQL语言,具备Windows环境...

    程序员_面试问题回答

    3. 缺点:聪明的做法是承认一个较小的个人发展点,然后说明你正在改进或已经克服它。例如,你可能曾有过时间管理的问题,但现在已采用有效的方法来改善。 4. 薪资要求:预先了解市场行情,给出一个合理的薪资范围。...

    如何从优秀的程序员成为伟大的程序员

    这种信任不仅来自于代码本身的质量,还源于伟大的程序员在开发过程中展现出的专业态度和责任心。当项目管理者对代码充满信心时,也会给予程序员更多的自主权和支持,形成良好的正向循环。 #### 五、对方案的信任 ...

    沟通的误区——《程序员职场第一课》

    首先,我们来探讨沟通的第一个误区——自我本位为主。这个误区往往源于我们过于坚持自己的观点,忽视了对方的需求和感受。例如,在案例1.7中,面对客户时,程序员可能会认为技术问题并不复杂,但这种单方面强调可能...

    程序员们必读的一篇好文章

    描述提到“怎么样当好一个合格的程序员”,这一点强调了持续学习的态度对于成为一名优秀程序员至关重要。在快速发展的IT行业中,新技术层出不穷,因此保持好奇心、积极主动地学习新知识是必不可少的。此外,“程序员...

    程序员绩效考核.doc

    程序员绩效考核是对程序员工作表现的评估和评价,是团队成员的绩效奖金荣誉的一个数据支持,也是团队整体建设进一步开展的依据。对个人来说,也有两个意义:横向可以与团队其他成员做比照看到差距继续努力,纵向也...

    程序员羊皮卷

    这意味着要有责任心,对自己的代码负责,对用户负责;要具备良好的沟通技巧,能有效地与团队成员、项目经理以及其他利益相关者交流;还要有团队合作精神,懂得协同工作,共同解决问题。 项目管理部分,书中提到了...

    java程序员面试交流项目经验

    【Java程序员面试交流项目经验】在面试中,Java程序员需要准备的不仅仅是技术知识,更重要的是如何将自己的项目经验、个人能力和职业潜力展现给面试官。以下是一些关键的面试技巧和项目经验分享: 1. 自我介绍:...

    计算机程序员绩效考核指标.doc

    该指标包括责任心、团队协作等方面。 岗位职责: 1. 完成项目经理安排的开发任务:完成项目经理安排的开发任务是计算机程序员的重要职责之一。 2. 按照详细设计文档编码:按照详细设计文档编码是计算机程序员的...

Global site tag (gtag.js) - Google Analytics