我已经用C++
,Matlab
和类似的语言编写了一段时间用于科学目的,但我最近想进入网络编程。我自学了HTML
和CSS
,我已经涉足Javascript
,PHP
和mySQL
。我真的想开始制作更高级的,用户驱动的网站(如果这有意义 - 最终网站类似于twitter和facebook的功能),但我担心我不够了解关于互联网安全和漏洞,以确保我做出的编程决策是安全/安全的。
您有什么建议或者您能提供的信息可以帮助我对我生成的代码的安全性充满信心。
如果这些都没有意义,或者您想要澄清一下,那就问一下。
答案 0 :(得分:6)
其他提交的答案提供了很好的建议,但要将其分解为规则系统:
这可能有点凄凉或愤世嫉俗,但即使有了这些规则,我也不认为我们会'安全'。安全是最古老的升级战争形式之一;有些我们赢了,有些我们输了,但我们只会听到损失。我们不太可能听到所有这些。
只要尽力保持这些,然后,如果你想到任何更偏执的方式来影响你的网站的安全性,请不要犹豫,成为更多实际上的偏执狂。然后回到社区;我们所有都需要帮助。
答案 1 :(得分:2)
我想开始调查SQL Injection,Cross site scripting和Cross site request forgery。那些应该让你知道需要注意的事情,让你进入正确的心态(永远不要相信用户输入是你认为它将是什么或它应该是什么)
答案 2 :(得分:1)
查看Microsoft Press的Michael Howard和David LeBlanc编写的安全代码。它有很多关于安全编码的好信息,以及一些特定于Web编程的章节。这是一本微软的书,但大多数想法都转化为你正在使用的语言。
链接到Amazon。
答案 3 :(得分:1)
验证所有用户输入,不要在其他基于文本的协议(SQL,HTML,XML,JS)中逐字使用。尝试考虑任何可以想象的方法,通过特制的输入使软件崩溃并防止它。
验证用户身份。考虑任何可以想象的方式,有人可以拦截用户的身份信息并代表他做坏事。防止它。
基本上就是这样。
答案 4 :(得分:1)
您需要了解SQL注入攻击,跨站点脚本攻击,并且您必须对如何管理系统输入进行健康的偏执。这包括学习如何清理用户输入,如何正确使用会话来跨页面保存状态,以及如何以及何时使用SSL。
您还需要了解FTP帐户黑客攻击的普遍性,共享托管环境的危险以及可以利用Web服务器的一般方法。
有一些专门介绍PHP / MySQL安全问题的书籍可能会对您有所帮助。
答案 5 :(得分:1)
我推荐Mark Dowd,John McDonald和Justin Schuh的The Art of Software Security Assessment。它很大,但值得一试。
答案 6 :(得分:0)
如上所述,输入(和输出)验证非常重要,身份管理也是如此。但是编写安全的Web应用程序肯定会有更多。
首先熟悉OWASP http://www.owasp.org上的免费工具和资源,并订阅他们的新闻Feed。
在网络安全方面获得某种基础培训:我推荐斯坦福大学http://scpd.stanford.edu/computerSecurity/的在线高级软件安全计划,至少参加基础课程,如果你需要某个地方的话,那就值得了。
查看SANS Institute http://www.sans.org的培训计划和其他资源,获取他们的漏洞电子邮件列表和其他电子邮件列表。 SANS提供安全PHP编程课程http://www.sans.org/securitywest09/description.php?tid=2142。