开发人员应该考虑的典型潜在安全风险是什么?

时间:2010-06-24 12:15:07

标签: database security encryption passwords

这是一个广泛的问题,寻找一个体面的广泛答案,但我真的很好奇专业开发人员在安全性方面必须考虑哪些关键问题。

如何让您的网站更加防黑客?您如何确保公司数据库的安全性?

我是一个有安全问题的真正的菜鸟,但我很想听听人们关于安全性的典型设计模式(如果有这样的事情),使用加密方法等的简易性。

谢谢!

5 个答案:

答案 0 :(得分:2)

我可以指出一些可以尝试访问网站的典型攻击。您可以在网上找到关于每一个的大量资源。

  • XSS(跨站点脚本)
  • CSRF / XSRF(跨站点请求伪造)
  • Sql Injection

这些是最常见的,我建议你从研究它们开始。

答案 1 :(得分:2)

这绝不是您必须做的所有事情的详尽清单,但它应该让您考虑一些问题的答案:

  

如何让您的网站黑客证明?

  • 无论在何处考虑安全问题,请务必使用强大的SSL加密。
  • 从不使用动态SQL。始终使用参数化查询或存储过程。这将防止SQL注入攻击。
  • 切勿以纯文本格式存储用户密码。始终使用盐渍哈希。
  • 要求用户(尤其是管理员用户)使用强密码。
  • 请务必检查危险内容的查询参数。这将有助于抵御跨站点脚本攻击。
  

您如何确保公司数据库的安全性?

  • 不要将数据库直接暴露给Internet。
  • 需要强密码。
  • 确保连接到数据库的应用程序遵循最佳实践,以便它们不会通过SQL注入攻击公开数据。

答案 2 :(得分:2)

虽然已经发布了很多好的建议,但我建议应该采取更系统和方法论的方法。而不是随意保护免受XYZ攻击,首先在您想要“黑客证明”的网站上执行威胁建模更有意义。例如,考虑一个不允许任何用户输入的Intranet网站。只提供只读但保密的信息。你应该关注SQL注入,XSS等吗?我不这么认为(因为没有用户输入)。 DNS重新绑定更关注攻击在这里担心。网站/检查HOST标题?如果不是,该站点可能易受攻击,并且机密数据可能泄露给未经授权的用户。

通过执行威胁建模,可以清楚地了解应用程序的主要威胁,并根据风险评估,制定缓解策略。

答案 3 :(得分:1)

Bruce Schneier的 Secrets And Lies 是一本非常好的书,可以作为对该主题的一般哲学调查。

答案 4 :(得分:1)

网络应用

永远不要相信用户输入!假设有人试图将恶意内容传递给您的应用程序。

这种事情导致了@Matteo Mosca正在讨论的问题。

<强>数据库

在数据库方面,请确保加密任何您不希望人们轻易查看是否存在您的数据库(密码等)的信息

Here是关于在数据库中存储密码的好文章。

链接了解更多信息: