雷观(七):靠谱的程序员,不是随便一个码农就可以做到的
在学习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
转载于:https://www.cnblogs.com/qitian1/p/6463103.html
雷观(七):靠谱的程序员,不是随便一个码农就可以做到的相关推荐
- 为什么中国的程序员总被称为「码农」?
很多同学会问,IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? 先说两个小段子 街边,一对情侣在吵 ...
- 程序员:不要自称为码农
每年都有无数年轻程序员,加入软件行业.他们在学校里学过编程,但是对这个行业的现实一无所知.Patrick McKenzie 是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况. 原 ...
- 中国的程序员为何经常被叫做码农?
实际上IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? 编程活动和机械电子一样可以视为一种工艺(c ...
- 我,32岁,小米公司程序员,揭 开北京“码农”的真实收入
985大学本科毕业后,许多同学都选择考公务员或进入事业单位工作,渴望拥有铁饭碗工作. 而我却恰恰相反,另辟蹊径,选择了另一条鲜有人走的路,选择进入一家企业当程序员. 如今在单位已经工作3年,已经步入企 ...
- 不想成为架构师的程序员,只配叫码农
刚刚过去的双十一,让"高性能""高可用""亿级"这3个词变成了技术热点词汇,也让很多人再次萌发成为「架构师」的想法. 先问大家一个问题:你觉 ...
- 西乔说要把「神秘的程序员们」当做一个文化产品来做
西乔何许人也 她是「神秘的程序员们」系列漫画的原创作者,每篇漫画都能戳中程序员的笑点和泪点,经常有10W+的阅读量,可以说是最懂程序员的漫画作者:她做设计也管理项目,为FT中文网和纽约时报中文网重构或 ...
- 不愿做「奴隶」的程序员们组建了一个王国
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 有一天,程序员们受够了这个世界 他们不但每天要加班 遭受产品经理的压迫 还要时刻提防被拉去「 ...
- 不愿做「奴隶」的程序员们组建了一个帝国
点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 有一天,程序员们受够了这个世界 他们不但每天要加班 遭受产品经理的压迫 还要时刻提防被拉去 ...
- 程序员必读:一个码农在硅谷的悲惨故事
这是一个悲惨的故事.一个硅谷码农被创业公司炒了鱿鱼,因为他开发的应用有太多Bug. 还能比这更惨一点吗?能的.这个码农不但丢了工作,还被公司在苹果应用商店公开指责.人生已经如此的艰难,有些事情为什么还 ...
最新文章
- python turtle画画 30排以内_Python竟能画这么漂亮的花,帅呆了(代码分享)
- python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
- 信息系统项目管理师-项目质量管理核心知识点思维脑图
- JS 数据处理技巧及小算法汇总(转载)
- c语言调用labview方法,LabVIEW与C语言接口的方法
- csp-s模拟测试44「D·E·F」
- restful get不传参数404_你知道什么是 Restful 风格吗?SpringMVC 带我们实现它!
- sql server 监视_使用动态管理对象监视SQL Server –会话和连接
- 利用jetson nano上自带的opencv实现多线程rtsp拉流、低延迟较稳定显示摄像头视频(c++)
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_03-自定义查询页面-前端...
- 开发基于CXF的 RESTful WebService web 项目 webservice发布
- 《电机学和电机驱动入门》
- 网站快速收录-网站快速收录工具下载免费
- 从零开始做小程序(三)——引入组件库
- 论文《Fast spatial–temporal stereo matching for 3Dface reconstruction under speckle pattern projection》
- 解决Minimum supported Gradle version is 7.0.2. Current version is 6.8.
- vue element table expand 扩展行点击行展示且保证只展示一行
- 阿波罗服务器的投资项目,阿波罗未来产业城调整规划范围 将重点打造“两轴一片”空间格局...
- 【KG】构建《红楼梦》知识图谱
- mdio clause22 clause45以及marvell直接寻址/间接寻址的使用说明--基于mv88e6390 交换机
热门文章
- 3d stroke插件下载_推荐一款好用的PS 3D地图插件,PS插件3D Map Generator ,一键生成地图神器...
- php渲染nodejs api,如何使用nodejs 服务器读取HTML文件渲染至前端
- python 深度 视差 计算_开源双目视觉BM算法-Matlab/Python/Javascript
- c语言进制转换pdf下载,C语言实现任意进制转换.doc
- shell指令可以直接在终端输入吗_shell不是LInux系统的壳吗?咋还能脚本编程了?...
- auuc 评估指标_分类之性能评估指标
- 华为机考HJ13句子逆序C语言弱智解法
- Pcl:Normal的定义结构及输出
- C++:文件操作2 文本文件和二进制文件的读写
- 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?