安全编码——它是关于什么的?

null

你觉得你能编码吗?很高兴知道…这个世界肯定需要更多像你我这样的极客和书呆子…但是, 你的程序安全吗? 这就是本文的全部内容。

作为一名程序员,不仅是你的工作,也是你的道德责任,以确保你的代码没有任何余量,以后可能会被任何其他黑帽黑客利用。这是什么 安全编码 都是关于。 如果你在谷歌上快速搜索有关安全编码的内容,第一个吸引你注意的链接将是我们自己的维基。

安全编码是以防止安全漏洞意外引入的方式开发计算机软件的实践。缺陷、bug和逻辑缺陷始终是经常被利用的软件漏洞的主要原因。

可以行话够多了…这到底是什么意思?让我给你举个例子。现在,由于我是一个耍蛇人,我将使用Python 2.7x…

Python3

#test_run.py
pswd = "MY PASSWORD"
not_secret = "Geeks rock!"
inputVal = input ( "Please enter number of geeks" ) #A VERY BAD IDEA
print ( "There are" , inputVal, "geeks here, chanting" , not_secret)


现在,试试吧……它编译成功了,你知道吗,它给出了所需的输出!这是我尝试不同输入时得到的结果… 运行–1 请输入极客的数量 5.

            There are 5 geeks here, chanting Geeks rock!

跑步–2 请输入极客的数量 dir()

There are [‘pswd’, ‘not_secret’, ‘__builtins__’, ‘__doc__’, ‘__file__’,‘__name__’, ‘__package__’] geeks here, chanting Geeks rock!

跑步–3次 请输入极客的数量 pswd

          There are MY PASSWORD geeks here, chanting Geeks rock!

如果你到现在还没有意识到这一点,让我声明一下……这个程序运行得非常好!但是,不是以我们希望的方式…它打印出了我们的秘密数据…现在,你不能责怪语言,也不能责怪程序员…他/她做了他被要求做的事情…这就是 安全编码 开始发挥作用。现在,这个例子只是一个小例子,一个非常小的例子。开发一个程序的可能性是无穷无尽的。你所需要的只是一个聪明的头脑和利用漏洞的经验。如果你是一个 网络安全 然后,雇佣一个对安全编码标准一无所知或知之甚少的编码员可能会被证明是你可能犯的最大错误。因此,为了拥有一个安全的职业未来,有必要对安全编码标准有完整的了解。

现在,谁能决定什么是安全的编码方式?这不是一个程序员所能做到的。谢天谢地,我们不需要为此烦恼。去看看这本书 SEI证书编码标准 它有一个非常好的集合来推荐你的程序,以确保程序是安全的,并且也根据编程语言进行分类,C语言、C++语言、java语言、Perl语言和Android语言。但是,不幸的是,对于最简单的语言(在我看来),没有给出这样的标准。这是否意味着Python程序总是安全的?不幸运的是,一些Python爱好者开始为Python列出类似的建议,并由此产生了今天被称为 PEP 0008 .被称为 Python代码的样式指南 ,它创建于2001年。

它有一个详尽的“安全”和“不安全”程序列表,是任何Python程序员都必须使用的。

现在,理论已经够多了!让我们回到一些编码的东西!我现在要用一个高保真的术语,你可以进一步用它来给别人留下深刻印象,这个术语是 跨站点脚本(XSS) .在目前的情况下,当每个网站都有一个评论区,允许访问者分享他们的体验时,XSS已经成为黑客经常使用的方法(不是一个好术语!)窃取数据/发起分布式拒绝服务(DDOS)攻击/在客户端系统中安装病毒和恶意软件,以及许多其他“不太好”的行为。

大多数评论部分都允许用户编写HTML代码,以提供格式化的机会。这意味着首先处理评论,然后在网站上打印结果。因此,假设我不写注释,而是编写如下JavaScript代码:

window.alert(“Your comment has been received! – Geeks4Geeks”);

现在,按照我刚才讨论的内容,代码将被处理,客户端将收到一个弹出窗口 您的评论已收到!——极客4周 ”. 这听起来不坏……但是,想象一下可能性吧。你可以编写一个简单的脚本,在客户端的系统中下载恶意软件/病毒,或者显示一个广告,内容会吸引他/她点击它,它将出现在一个IFrame中,可以窃取cookie(这被称为 点击劫持 )这进一步导致了所谓的 劫持 ; 选择不受限制!那么,我们该怎么办?同样,解决方案在于安全编码!仅举一个例子,说明如何避免XSS,然后单击使用Django进行劫持:

#Clickjackingresponse = render_to_response(“webpage.html”, {},context_instance=RequestContext(request))response[‘X-Frame-Options’] = ‘DENY’ #Frame Killingresponse[‘Content-Security-Policy’] = “frame-ancestors ‘none’”return response

# XSS #Django默认会转义HTML,因此大多数程序都不会受到#XSS攻击 **{{contents}**#是安全的 **{{contents | safe}}**#压倒逃逸, 这不是个好主意

所以,基本上总结是,如果你想在编码领域取得成功,那么你应该 养成遵守安全编码标准的习惯 为什么?因为只有公众无法访问的程序才是安全的……一旦所有人都可以使用,就会有很多人试图破解你的代码……你最好小心点!

带着这个我告辞了! 奥夫·维德森! ! (德语再见) 关于作者:

维什韦什·施里马里 是BITS Pilani大学机械工程专业的本科生。他实现了

vish

关于他所在分支机构未教授的所有要求——白帽黑客、网络安全运营商和前竞争对手程序员。作为Python强大功能的坚定信徒,他的大部分作品都是用同一种语言完成的。每当他有时间除了编程、上课、看CSI网络之外,他就会去散步,默默地弹吉他。他的人生座右铭是:“享受生活,因为它值得享受!”

如果你也想在这里展示你的博客,请参见 吉微博 在Geeksforgek上写客博。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享