黑客到底比普通程序员高在哪里?
假设老板今天给了我们一个任务,让我们判断一个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克各种注入数据库,涉及世界各地的各种论坛,甚至包括一些银行、一些人口办公室和一些政府机构。代码思想是有限的,创造力是无限的。
程序员与黑客的差别
先用一句话概括:
程序员未必是黑客,黑客一定是优秀的程序员。
程序员:
一般叫软件工程师,他们喜欢自嘲“码农”或者“搬砖的”。等级一般分初级、中级、高级和资深,主要工作是根据公司的业务需求(主要是产经的脑洞)设计软件编写代码。需要熟练掌握至少一门语言,比如Java。
黑客:
不要以为上传木马啊盗号啊破解软件啊翻个外网啊就能叫黑客了,他们最多算脚本小字,或者叫骇客。真正的黑客虽然没有黑客帝国那样酷炫,但至少是个攻防高手。不同于程序员,他们一般能通用多种编程语言,但不会经常敲业务代码。他们更侧重于找出软件的破绽,发现系统的漏洞。其实现在很多互联网公司的首席安全管理都是名副其实的黑客,只不过他们更注重防守,而不是主动攻击。
当然,黑客也有好坏之分。好黑客又称红客,出于检测安全为目的,不以恶意攻击为目的。而坏黑客,以非法入侵、破坏、勒索为目的,这些就是触犯法律的行为。
黑客与普通程序员有什么不同
在一些影视剧里,经常可见那些超级厉害的黑客,可以靠一台电脑,敲几个字符就能让整个网络系统出现大规模的瘫痪,侵入到各种高大上的企业网络中,来去自如,看别人的电脑秘密如探囊取物一般;
还有一个工种是与黑客不同的存在——程序员,每天坐在工位上,噼里啪啦敲着一行行的代码,还总被产品经理改需求。不爱说话,穿着邋遢,爱穿格子衫冲锋衣、牛仔裤、背双肩背包、黑眼圈配疲惫的脸,头顶越来越聪明,这是大众对程序员们的综合认知......
一提起黑客,人们一脸崇拜,那种神秘感好像听说了明星的一个爆炸新闻一样;一提起程序员,人们记住的却只是那些黑程序员的段子。同样是敲代码,差距咋就那么大呢?
黑客之所以让人崇拜,一是因为其神秘性,二是各种电影里对黑客的演绎夸张。可以这样说“黑客因其神秘性,更加容易造英雄。程序员给人印象加班多,整天加班还是有无穷无尽的问题。一个在明处,一个在暗处,暗处的给人更多遐想空间”。
如果要成为黑客,必须是一名合格的程序员,掌握必备的编程语言,而且黑客相对于普通的程序员,在某些专业领域做的而更加惊喜,而且很多都是标准的程序的逆向。这就给了人们一种“黑客是最牛的程序员”的印象,其实不然,术业有专攻而已,而且黑客和程序员的关系就是剪不断理不乱。
很多程序员和黑客其实都是难兄难弟,程序员编程为生,黑客以发现程序员的错误为生,国内的许多大公司的网络安全部门,多数是黑客招安来的,黑客化身成为公司的安全工程师,然后以工程师的名义继续和黑客对战。看似是难兄难弟,其实是相亲相爱一家人,两者随时可能角色互换。
就像阿里巴巴的首席安全技术专家吴翰清,在20岁的时候去阿里面面试的时候,被面试官问到有啥技术特长,吴二话没说,拿着面试官的电脑当场黑掉了阿里一台路由设备,导致阿里内部网络中断,从此在阿里传为佳话,更是在业内流传开来。
黑客碾压程序员这种说法在很多人眼里是真理,其实黑客和程序员不是水平高低的区别,是分工不同,就像长枪兵和魔法师。举个简单的例子,程序员就是建筑工人,有的人做设计,有的人做施工,有人搬砖,有人和泥,有人砌墙,各有所专,分工合作,建筑一幢大厦。
黑客呢就是想方设法钻到大厦里面非开放区域,或者偷点东西,或者在墙上喷个图案,或者就是看看,窥测心理。攻防技术不分伯仲。都可以非常强,或许能强的离谱,你眼中的一般程序员能创造黑客使用的C语言,脚本语言等。同样强悍的黑客能一夜间让你辛苦做好的程序系统瘫痪、数据库彻底消失。他们互相制约,同样也能使得产品更加安全。
最后,黑客和程序员的区别就是一句话的区别:程序员是一种职业,而黑客是一种兴趣,并且黑客也分好坏两种。
那么作为企业开发中至关重要的程序员岗位,只有具备更强更完备的编程技术,才能更好的避免一些不良黑客的侵入,更好的保障公司的网络及软件安全,这也要求程序员们在技术上的学习任何时刻都不应该松懈。
程序员和黑客有什么区别??
1.
黑客是程序员的子集。
2.
程序员在解决那些原先已经被解决过的问题。而黑客通常是在尝试解决一些新的问题。
3.
程序员是一种职业,而黑客是一种兴趣。
4.
程序员的工作有很多限制,而黑客可以尽情发挥。
5.
程序员都想把自己说得更好,因为他们要推销自己,而真正的黑客更谦虚,他们知道自己懂得还不够多。
6.
程序员是一种“职责”,需要的是对编程语言的使用,更希望尽快完成工作,而不是探寻为什么要做这项工作。做一个程序员没有什么错,但生活中有
很多比编程更重要的事情。相反,黑客是一种“心态”,对技术有着极大的好奇,希望理解核心的工作原理,喜欢创造。尝试理解如何工作,如何做得更好,如何让事情做得特别。黑客就像艺术家或哲学家,同时有着科学工程的天赋,有很多“为什么”和“为什么不”。
7.
程序员和黑客,就如同画匠和艺术家,DIYer和工匠,教科书的方式和创新的方式。
8.
程序员的目标是写出程序,完成需求,而黑客是要让程序为自己而用,满足自身需求。
9.
程序员和黑客都在写代码,只是黑客把不可能变为了可能。
黑客是不是比计算机专业不知强上几百倍?
并不是,黑客也是学计算机的,好的程序员称为红客,故意攻击他人计算机网络的程序员称为黑客,主要看自己把专业知识用于有利的还是破坏他人利益的。
都很强。在CVE、黑客论坛等场所提高脆弱性敏感度需要花费大量时间,而创造力只有靠天赋和运气才能提高。你可能认为有很多方法可以避免这个例子。首先,我承认这个例子是一个暂时的例子,这是不好的,但请注意,我的例子是非常简单和不成熟的。在现实的红蓝战场上,以SQL注入为例,经过这么多年,我们能完全
大呢?黑客之所以让人崇拜,一是因为其神秘性,二是各种电影里对黑客的演绎夸张。可以这样说“黑客因其神秘性,更加容易造英雄。程序员给人印象加班多,整天加班还是有无穷无尽的问题。一个在明处,一个
员给人印象加班多,整天加班还是有无穷无尽的问题。一个在明处,一个在暗处,暗处的给人更多遐想空间”。如果要成为黑客,必须是一名合格的程序员,掌握必备的编程语言,而且黑客相对于普通
需求,而黑客是要让程序为自己而用,满足自身需求。9.程序员和黑客都在写代码,只是黑客把不可能变为了可能。黑客是不是比计算机专业不知强上几百倍?并不是,黑客也是学计算机的,好的程
试官问到有啥技术特长,吴二话没说,拿着面试官的电脑当场黑掉了阿里一台路由设备,导致阿里内部网络中断,从此在阿里传为佳话,更是在业内流传开来。黑客碾压程序员这种说法在很多人眼里是真理,其实黑客和程序员不是水平高低的区别,是分工不同,就像长枪兵和魔法师。举个简单的例子,程序员就