文档章节

雷观(七):靠谱的程序员,不是随便一个码农就可以做到的

FansUnion
 FansUnion
发布于 2015/05/03 01:29
字数 853
阅读 7
收藏 0

在学习Web开发4年之后,我自己可以独立做一些基本的项目了。在加入前单位秒针,也做了几个Web项目。

    我发现一个现象,很多公司大部分的Web项目,用到的技术很少,主要就是SSH等框架,实现一些行业的业务逻辑,仅此而已。

    技术上很容易实现,无非就是效率问题。

    我曾经觉得,相比别人,自己还是比较靠谱的。代码写得逻辑清晰,bug较少,进度按时完成。

    直到后来,我陷入了深思。

    那天,我想知道全国有多少个公司,地区分布,行业分布。我就去了,武汉某工商局网站查了下,发现有1千多万(当然,有很多都是已经注销或者死掉的)。 

    怎么尽可能多的拿到它们的数据呢?入侵他们的数据库,我貌似没有这个能力,也不想这么做,法律上风险也比较大。 

    我观察了网站的URL之后,采用了最简单的办法。
   http://a.com?pageSize=1000000000&pageNo=1

   这个网站查询结果最多显示10页,于是我就把每页显示的条数,逐步调整为该网站所能承受的最大值。pageSize太大,获得的数据量巨大,会把这个网站搞挂。

   我就是采用这种方法, 获得了大量的真实数据。

   我很想吐槽,工商局的网站真TMD垃圾, 到处是漏洞。我也很得意,看我Coder多厉害,稍加分析,抓住个bug,就可以为我所用。
-------------------------------------------------------------------
   由于有了这次“黑客” 经历,我写分页代码的时候,专门做了检查。既然我可以黑别人,别人自然也可以黑我啊,反正是互相黑。

    我的个人官网,最开始也没有怎么处理,今天去黑了下,问题真大。厉害一点的黑客,应该可以通过这个bug,干点坏事。

   http://fansunion.cn/article/list.html?pageNo=1&pageSize=1

   现阶段,只做了一些简单的“防范” 。
   /**

* 检查pageSize的大小,如果大于最大值,显然是受到了“攻击”,调小有点。防止被攻击,比如把pageSize设置成10000,每页就显示10000条数据,给数据库查询造成很大压力。

*/

public void check() {

pageSize = Math.abs(pageSize);

pageNo=Math.abs(pageNo);

if (pageSize > maxPageSize) {

pageSize = defaultPageSize;

pageNo=1;

}

}

 
     pageSize和PageNo都是整数Integer,而且必须是 正数,而不能是 负数,比如-1。每页显示的最大条数有限制,无论前端怎么传入pageSize,最多只显示50条。
-----------------------------------------------------------
就分页这么小的一个功能,安全问题一大堆,如果再考虑 复用、扩展、稳定,就更难了。

如果把靠谱的程序员,定义为:在保证进度的情况下,能写出 功能正确、安全、稳定、性能不错的代码,那么,真的不容易达到。

靠谱的程序员真的不容易做到,如果你敢认真地审视自己的代码的话。


目前码农一枚,先努力成为一名靠谱的程序员再说,走在靠谱的道路上~

共勉~

小雷FansUnion-博学的互联网技术工作者
2014年11月26日
湖北武汉循礼门


原文首发:http://fansunion.cn/article/detail/527.html

© 著作权归作者所有

FansUnion
粉丝 60
博文 858
码字总数 825464
作品 0
丰台
高级程序员
私信 提问
复制:为什么你说“就差一个码农了”,我们是拒绝的

原文:http://blog.jobbole.com/86878/ 根本原因是90%这么说的人不懂技术,不了解行业,把技术实现想太简单,以为编程就是打字。 本文分开来说包含以下四个方面:不尊重程序员、不只缺一个、大...

zhchl2010
2015/12/29
99
0
为什么你说“就差一个码农了”,我们是拒绝的

根本原因是90%这么说的人不懂技术,不了解行业,把技术实现想太简单,以为编程就是打字。分开来说包括以下4个方面:不尊重程序员、不只缺一个、大大低估投入、还没到需要程序员的时候,下面一...

oschina
2015/05/13
19.3K
112
码农和程序员之间的5个关键差异

如果一个企业老板大声嚷嚷说,“我要招个程序员”,那么十之八九指的是“码农”——一种纯粹为了钱而写代码的技术人员。这其实是一种非常狭隘和错误的做法。  1.码农写的是代码,程序员写的...

egefcxzo3ha1x4
2017/11/08
0
0
为什么中国的程序员总被称为码农?而不是架构师?(大牛分享)

前言: 实际上IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? 之前,研发频道曾...

原来是泽镜啊
2018/05/30
85
1
《一个程序员的奋斗史》读后感:从码农谈起

最近,我阅读了CSDN知名博主莫雨在2013年出的一本书,叫做《一个程序员的奋斗史》。本书是根据作者的CSDN博客专栏《一个程序员的奋斗史》(http://blog.csdn.net/column/details/novelnorains...

zhouzxi
2017/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

还为PDF转Word抓狂?以下神器让你在职场倍受欢迎!

身在职场的你,是否一直在琢磨:如何能让自己在公司更受欢迎?如何才能在办公室里混个好人缘?如何在同事圈里留个好印象?其实,想要让自己成为受欢迎的人,只要让自己成为大家需要的人不就行...

foxit2world
20分钟前
7
0
AndServer+Service打造Android服务器实现so文件调用

so 文件调用 随着 Android 移动安全的高速发展,不管是为了执行效率还是程序的安全性等,关键代码下沉 native 层已成为基本操作。 native 层的开发就是通指的 JNI/NDK 开发,通过 JNI 可以实...

夜幕NightTeam
22分钟前
4
0
Docker下kafka学习三部曲之二:本地环境搭建

在上一章《 Docker下kafka学习,三部曲之一:极速体验kafka》中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写...

程序员欣宸
22分钟前
4
0
萌新推荐!不再为Excel转换PDF发愁,Aspose.Cells for .NET一步到位!

Aspose.Cells for .NET(点击下载)是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。 将Excel工作簿转换为...

mnrssj
23分钟前
6
0
对于绘画小白怎么画制服?该注意什么?

怎样制作学生服装?想必绘画初学者们常常会想的问题吧,不知道怎样才能画好人物的衣服,别着急,今日就在这儿讲一些关于如何绘画学生衣服校服的教程给我们!期望能够帮到你们! 轻便西装是不...

热爱画画的我
29分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部