雷观(七):靠谱的程序员,不是随便一个码农就可以做到的
在學(xué)習(xí)Web開發(fā)4年之后,我自己可以獨(dú)立做一些基本的項(xiàng)目了。在加入前單位秒針,也做了幾個(gè)Web項(xiàng)目。
? ? 我發(fā)現(xiàn)一個(gè)現(xiàn)象,很多公司大部分的Web項(xiàng)目,用到的技術(shù)很少,主要就是SSH等框架,實(shí)現(xiàn)一些行業(yè)的業(yè)務(wù)邏輯,僅此而已。
? ? 技術(shù)上很容易實(shí)現(xiàn),無非就是效率問題。
? ??我曾經(jīng)覺得,相比別人,自己還是比較靠譜的。代碼寫得邏輯清晰,bug較少,進(jìn)度按時(shí)完成。
? ??直到后來,我陷入了深思。
? ? 那天,我想知道全國有多少個(gè)公司,地區(qū)分布,行業(yè)分布。我就去了,武漢某工商局網(wǎng)站查了下,發(fā)現(xiàn)有1千多萬(當(dāng)然,有很多都是已經(jīng)注銷或者死掉的)。?
? ? 怎么盡可能多的拿到它們的數(shù)據(jù)呢?入侵他們的數(shù)據(jù)庫,我貌似沒有這個(gè)能力,也不想這么做,法律上風(fēng)險(xiǎn)也比較大。?
? ? 我觀察了網(wǎng)站的URL之后,采用了最簡(jiǎn)單的辦法。
? ?http://a.com?pageSize=1000000000&pageNo=1
? ?這個(gè)網(wǎng)站查詢結(jié)果最多顯示10頁,于是我就把每頁顯示的條數(shù),逐步調(diào)整為該網(wǎng)站所能承受的最大值。pageSize太大,獲得的數(shù)據(jù)量巨大,會(huì)把這個(gè)網(wǎng)站搞掛。
? ?我就是采用這種方法,?獲得了大量的真實(shí)數(shù)據(jù)。
? ?我很想吐槽,工商局的網(wǎng)站真TMD垃圾,?到處是漏洞。我也很得意,看我Coder多厲害,稍加分析,抓住個(gè)bug,就可以為我所用。
-------------------------------------------------------------------
? ?由于有了這次“黑客”?經(jīng)歷,我寫分頁代碼的時(shí)候,專門做了檢查。既然我可以黑別人,別人自然也可以黑我啊,反正是互相黑。
? ??我的個(gè)人官網(wǎng),最開始也沒有怎么處理,今天去黑了下,問題真大。厲害一點(diǎn)的黑客,應(yīng)該可以通過這個(gè)bug,干點(diǎn)壞事。
? ?http://fansunion.cn/article/list.html?pageNo=1&pageSize=1
? ?現(xiàn)階段,只做了一些簡(jiǎn)單的“防范”?。
? ?/**
* 檢查pageSize的大小,如果大于最大值,顯然是受到了“攻擊”,調(diào)小有點(diǎn)。防止被攻擊,比如把pageSize設(shè)置成10000,每頁就顯示10000條數(shù)據(jù),給數(shù)據(jù)庫查詢?cè)斐珊艽髩毫Α?/p>
*/
public void check() {
pageSize = Math.abs(pageSize);
pageNo=Math.abs(pageNo);
if (pageSize > maxPageSize) {
pageSize = defaultPageSize;
pageNo=1;
}
}
?
? ? ?pageSize和PageNo都是整數(shù)Integer,而且必須是 正數(shù),而不能是 負(fù)數(shù),比如-1。每頁顯示的最大條數(shù)有限制,無論前端怎么傳入pageSize,最多只顯示50條。
-----------------------------------------------------------
就分頁這么小的一個(gè)功能,安全問題一大堆,如果再考慮 復(fù)用、擴(kuò)展、穩(wěn)定,就更難了。
如果把靠譜的程序員,定義為:在保證進(jìn)度的情況下,能寫出 功能正確、安全、穩(wěn)定、性能不錯(cuò)的代碼,那么,真的不容易達(dá)到。
靠譜的程序員真的不容易做到,如果你敢認(rèn)真地審視自己的代碼的話。
目前碼農(nóng)一枚,先努力成為一名靠譜的程序員再說,走在靠譜的道路上~
共勉~
小雷FansUnion-博學(xué)的互聯(lián)網(wǎng)技術(shù)工作者
2014年11月26日
湖北武漢循禮門
原文首發(fā):http://fansunion.cn/article/detail/527.html
轉(zhuǎn)載于:https://www.cnblogs.com/qitian1/p/6463103.html
總結(jié)
以上是生活随笔為你收集整理的雷观(七):靠谱的程序员,不是随便一个码农就可以做到的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纹身多少钱一个啊?
- 下一篇: Linux多任务编程之五:exit()和