成为网络安全人员的步骤

时间:2009-11-09 22:23:18

标签: security

我已经用C++Matlab和类似的语言编写了一段时间用于科学目的,但我最近想进入网络编程。我自学了HTMLCSS,我已经涉足JavascriptPHPmySQL。我真的想开始制作更高级的,用户驱动的网站(如果这有意义 - 最终网站类似于twitterfacebook的功能),但我担心我不够了解关于互联网安全和漏洞,以确保我做出的编程决策是安全/安全的。

您有什么建议或者您能提供的信息可以帮助我对我生成的代码的安全性充满信心。

如果这些都没有意义,或者您想要澄清一下,那就问一下。

7 个答案:

答案 0 :(得分:6)

其他提交的答案提供了很好的建议,但要将其分解为规则系统:

  1. 偏执狂

    1. 假设您的用户充满敌意。
    2. 假设您的代码不安全。
    3. 验证(客户端服务器端)所有内容:

      1. ...您的用户提交。
      2. ...您存储在数据库中。
      3. ...您从数据库中读取。
      4. 不允许用户看到您未创建的任何错误消息。如果`verify_username()只需要两个参数`,请不要让您的用户永远看到该错误消息。他们不应该知道你的功能名称,也不知道他们希望使用,输出或失败的内容。
      5. 聪明

        1. 你的代码和我的代码很糟糕;掌握新工作。
        2. 阅读这个主题,即使是那些你觉得乏味的主题,肯定你理解不了的主题。
        3. 假设您的用户比您更聪明( 主动恶意的人可能比您破解锁定时更有经验)。
        4. 对您能想到的所有内容进行错误检查,然后让四周左右的孩子按下所有内容并填写您可能拥有的任何表单/字段。如果出现问题(字母数字而不是整数或其他任何内容),请添加错误条件以阻止它将脚本的内部暴露给世界。
        5. 将您可能之外的所有内容移动到网络根目录,以防止用户从其他网站或其计算机访问您的脚本。
        6. 这可能有点凄凉或愤世嫉俗,但即使有了这些规则,我也不认为我们会'安全'。安全是最古老的升级战争形式之一;有些我们赢了,有些我们输了,但我们只会听到损失。我们不太可能听到所有这些。

          只要尽力保持这些,然后,如果你想到任何更偏执的方式来影响你的网站的安全性,请不要犹豫,成为更多实际上的偏执狂。然后回到社区;我们所有都需要帮助。

答案 1 :(得分:2)

我想开始调查SQL InjectionCross site scriptingCross site request forgery。那些应该让你知道需要注意的事情,让你进入正确的心态(永远不要相信用户输入是你认为它将是什么或它应该是什么)

答案 2 :(得分:1)

查看Microsoft Press的Michael Howard和David LeBlanc编写的安全代码。它有很多关于安全编码的好信息,以及一些特定于Web编程的章节。这是一本微软的书,但大多数想法都转化为你正在使用的语言。

链接到Amazon

答案 3 :(得分:1)

  1. 验证所有用户输入,不要在其他基于文本的协议(SQL,HTML,XML,JS)中逐字使用。尝试考虑任何可以想象的方法,通过特制的输入使软件崩溃并防止它。

  2. 验证用户身份。考虑任何可以想象的方式,有人可以拦截用户的身份信息并代表他做坏事。防止它。

  3. 基本上就是这样。

答案 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