文章目录:
- 1、程序员和黑客有什么区别
- 2、黑客与普通程序员有什么不同
- 3、程序员与黑客的差别
- 4、大家都知道高级程序员很吃香,那么高级程序员和黑客到底谁更厉害?
- 5、程序员和黑客哪个更厉害?
- 6、黑客到底比普通程序员高在哪里?
程序员和黑客有什么区别
程序员和黑客有什么区别,程序员和
黑客只是研究方向不一样,程序员更
多是研究现实功能,架构,优化,黑
客是研究漏洞,程序员是职业,黑客
是兴趣爱好,程序员的目标是写出程
序完成需求挣到工资,而黑客是要让
程序为自己而用,程序员写代码是为
了完成任务,黑客写代码是为了爱好。
黑客与普通程序员有什么不同
在一些影视剧里,经常可见那些超级厉害的黑客,可以靠一台电脑,敲几个字符就能让整个网络系统出现大规模的瘫痪,侵入到各种高大上的企业网络中,来去自如,看别人的电脑秘密如探囊取物一般;
还有一个工种是与黑客不同的存在——程序员,每天坐在工位上,噼里啪啦敲着一行行的代码,还总被产品经理改需求。不爱说话,穿着邋遢,爱穿格子衫冲锋衣、牛仔裤、背双肩背包、黑眼圈配疲惫的脸,头顶越来越聪明,这是大众对程序员们的综合认知......
一提起黑客,人们一脸崇拜,那种神秘感好像听说了明星的一个爆炸新闻一样;一提起程序员,人们记住的却只是那些黑程序员的段子。同样是敲代码,差距咋就那么大呢?
黑客之所以让人崇拜,一是因为其神秘性,二是各种电影里对黑客的演绎夸张。可以这样说“黑客因其神秘性,更加容易造英雄。程序员给人印象加班多,整天加班还是有无穷无尽的问题。一个在明处,一个在暗处,暗处的给人更多遐想空间”。
如果要成为黑客,必须是一名合格的程序员,掌握必备的编程语言,而且黑客相对于普通的程序员,在某些专业领域做的而更加惊喜,而且很多都是标准的程序的逆向。这就给了人们一种“黑客是最牛的程序员”的印象,其实不然,术业有专攻而已,而且黑客和程序员的关系就是剪不断理不乱。
很多程序员和黑客其实都是难兄难弟,程序员编程为生,黑客以发现程序员的错误为生,国内的许多大公司的网络安全部门,多数是黑客招安来的,黑客化身成为公司的安全工程师,然后以工程师的名义继续和黑客对战。看似是难兄难弟,其实是相亲相爱一家人,两者随时可能角色互换。
就像阿里巴巴的首席安全技术专家吴翰清,在20岁的时候去阿里面面试的时候,被面试官问到有啥技术特长,吴二话没说,拿着面试官的电脑当场黑掉了阿里一台路由设备,导致阿里内部网络中断,从此在阿里传为佳话,更是在业内流传开来。
黑客碾压程序员这种说法在很多人眼里是真理,其实黑客和程序员不是水平高低的区别,是分工不同,就像长枪兵和魔法师。举个简单的例子,程序员就是建筑工人,有的人做设计,有的人做施工,有人搬砖,有人和泥,有人砌墙,各有所专,分工合作,建筑一幢大厦。
黑客呢就是想方设法钻到大厦里面非开放区域,或者偷点东西,或者在墙上喷个图案,或者就是看看,窥测心理。攻防技术不分伯仲。都可以非常强,或许能强的离谱,你眼中的一般程序员能创造黑客使用的C语言,脚本语言等。同样强悍的黑客能一夜间让你辛苦做好的程序系统瘫痪、数据库彻底消失。他们互相制约,同样也能使得产品更加安全。
最后,黑客和程序员的区别就是一句话的区别:程序员是一种职业,而黑客是一种兴趣,并且黑客也分好坏两种。
那么作为企业开发中至关重要的程序员岗位,只有具备更强更完备的编程技术,才能更好的避免一些不良黑客的侵入,更好的保障公司的网络及软件安全,这也要求程序员们在技术上的学习任何时刻都不应该松懈。
程序员与黑客的差别
先用一句话概括:
程序员未必是黑客,黑客一定是优秀的程序员。
程序员:
一般叫软件工程师,他们喜欢自嘲“码农”或者“搬砖的”。等级一般分初级、中级、高级和资深,主要工作是根据公司的业务需求(主要是产经的脑洞)设计软件编写代码。需要熟练掌握至少一门语言,比如Java。
黑客:
不要以为上传木马啊盗号啊破解软件啊翻个外网啊就能叫黑客了,他们最多算脚本小字,或者叫骇客。真正的黑客虽然没有黑客帝国那样酷炫,但至少是个攻防高手。不同于程序员,他们一般能通用多种编程语言,但不会经常敲业务代码。他们更侧重于找出软件的破绽,发现系统的漏洞。其实现在很多互联网公司的首席安全管理都是名副其实的黑客,只不过他们更注重防守,而不是主动攻击。
当然,黑客也有好坏之分。好黑客又称红客,出于检测安全为目的,不以恶意攻击为目的。而坏黑客,以非法入侵、破坏、勒索为目的,这些就是触犯法律的行为。
大家都知道高级程序员很吃香,那么高级程序员和黑客到底谁更厉害?
非从业人员对于程序员和黑客的外在形象就存在着不一样的认知,因为电视电影和网络上的段子,普通的程序员一般都是有才能却一点不风趣的男性,常年一件格子衬衣,几根稀疏的头发,虽然赚的钱不少,却不会花钱装扮自己;而黑客的形象就完全是另一种,他们很神秘,可能我们身边随便一个人在暗地里都可以是黑客,黑客还喜欢穿黑衣服,带黑色的帽子,不喜欢以真面目示人。
其实黑客和普通程序员只是各有侧重而已,说不上孰高孰低。黑客给人很厉害的感觉主要是他带来的破坏性比较直观,对于普通人来说比较好理解。比如电影里最常见的入侵别人系统搞坏事这类。而『普通程序员』如何通过各种精妙的设计构建出了一个又复杂牛逼的应用,抗住了天大的流量,一般人是没法理解的,比如淘宝这种,还有抗住春晚活动的流量这些。两者都是普通人做不到的。
一般来讲,黑客和普通程序员各有侧重,技能树不一样,比如前端的XSS攻击,黑客知道这个输入框内的内容如果没有被处理,那么可以通过构造特殊的输入内容来达到攻击目的,但是对于这个输入框如何弄得更好看,对用户交互友好这些他一般不关心,可能下一个关注点就在你的表单是不是可以做CSRF攻击上。还有一个例子是,框架/语言爆出了很多漏洞,黑客就会利用这些漏洞发起一些攻击,很大概率黑客对这个框架/语言都不是很熟悉。
相对的,普通程序员也不会关注黑客关注的很多点,比如CAPTCHA这种可能就直接引入个第三方的来防御了,并不会自己去实现一遍。还有加密算法这种,也几乎只有黑客才会去研究。普通程序员可能研究的就是压缩算法。黑客的攻击手段多种多样,有的甚至不会写代码,比如《我是谁–没有绝对安全的系统》里就有一位,根本不写代码,通过翻垃圾桶,开锁偷看资料这类操作搜集很多有用的信息,从而发起攻击。一般称这种为手段『社工攻击』。
程序员和黑客哪个更厉害?
黑客就是程序员,只不过是从事不正当行为的,你可以这么理解,好比程序员是魔法师,那么黑客就是魔法师里面的死灵法师,把它单列出来,不是因为他厉害,而是因为他干的事和其他行当不太一样,一不小心就走入禁区了。
黑客到底比普通程序员高在哪里?
假设老板今天给了我们一个任务,让我们判断一个IP是否在线。我们可以用Python编写ping IP代码importost=input('请输入要检测的IP:')result=os.popen('ping-C 1-t1%s'%(主机))。Read()如果'ttl'inresult:Print('Ip online')否则:Print('Ip offline')。
现在,作为一个代码审阅者,您不会考虑代码的总体结构,也不会考虑编写此代码的程序员为什么使用Ping或Popen。你觉得有什么问题吗?如果没有,请考虑两个问题:波本的本质是什么?如果您不知道或没有使用过Popen,请不要查找它并猜测此函数的用。在这个程序中,Popen要执行的命令是什么?既然 popen 后面执行的语句中的 host 变量是由用户输入的,那恶意用户是不是可以输入一个localhost whoami 呢?这样 popen 执行的代码就变成了 ping -c 1 -t 1 localhost whoami。注意,就算上述例子中没有将运行结果直接打印出来,但没打印出来并不代表代码没有运行。例如如果我直接输入 host 为 localhost whoami的话,输出结果还是 IP 存在, 但这并不代表 whoami 命令没有运行,我们依旧可以建立一个 Reverse Shell。为了验证结果,我们在代码里面让 result 被打印出来。
这种技术称为命令注入。如果普通程序员没有遇到这种问题,他们就不会碰这种技术。当他们看到上面的漏洞代码时,他们会觉得没有问题。他们至多认为这有点不愉快,但能反映出第一时间安全漏洞的少数人是少数。这听起来像是一种简单的技术,比反向和动力提升简单得多。但这项技术很有创意,有低下限和高上限。例如,我们现在知道上面的问题存在,所以在输入阶段中过滤一些关键字是可以的。在这个问题中,我们希望用户输入一个IP地址,所以我们需要直接过滤掉空间。普通IP地址中没有空格。
我认为它在脆弱性敏感度和创造力方面都很强。在CVE、黑客论坛等场所提高脆弱性敏感度需要花费大量时间,而创造力只有靠天赋和运气才能提高。你可能认为有很多方法可以避免这个例子。首先,我承认这个例子是一个暂时的例子,这是不好的,但请注意,我的例子是非常简单和不成熟的。在现实的红蓝战场上,以SQL注入为例,经过这么多年,我们能完全避免它吗?我记得今年年初黑网曝光的收藏数据库,1000克各种注入数据库,涉及世界各地的各种论坛,甚至包括一些银行、一些人口办公室和一些政府机构。代码思想是有限的,创造力是无限的。
ult=os.popen('ping-C 1-t1%s'%(主机))。Read()如果'ttl'inresult:Print('Ip online')否则:Print('Ip offline')。现在,作为一
年初黑网曝光的收藏数据库,1000克各种注入数据库,涉及世界各地的各种论坛,甚至包括一些银行、一些人口办公室和一些政府机构。代码思想是有限的,创造力是无限的。