测试Web应用程序中的安全漏洞:最佳实践?

时间:2010-02-28 14:28:15

标签: php mysql security sql-injection

我正在开发一个Web应用程序。就像一个合适的人一样,我过去曾使用像Joomla这样的东西制作出令人敬畏的东西,但现在终于弄脏了PHP,MySQL和CodeIgniter。

当您制作可以处理大量数据的严肃网络应用时,我应该采取哪些预防措施来对付我的数据输入以完全消毒它?我知道有明显的修剪,逃逸,xss清洁等 - 但我应该采用什么其他技术来停止注入数据库?

不仅如此,还有任何非破坏性的数据库注入代码,我可以测试我的所有输入吗?就像在,它会注入一些可见的东西,但实际上对我的测试数据库没有任何伤害?我不是一个黑客,需要一些指导。

黑客使用什么其他常见方法来破坏或读取用户数据,我如何自行检查?我没有钱雇用一名安全顾问,因为我只有16岁,但对计算机有很好的经验,如果给出一些关于它们的提示,我相信我可以做一些技巧。

我知道这是一大堆问题,但总结一下,你如何确保一切都100%安全?

4 个答案:

答案 0 :(得分:20)

SQL注入和XSS是程序员最常犯的错误。好消息是,只要您拥有合适的软件,它们最容易自动测试。当我使用pentest时,我使用SitewatchWapiti来查找Web应用程序漏洞。 Acunetix价格过高。

但是,你不能只是启动一些自动化工具并期望一切正常。您选择的任何漏洞扫描程序必须采取一些预防措施。

1)确保你的php.ini中的display_errors = On Sql Injection测试依赖于能够在响应页面中看到mysql错误消息!没有错误,没有检测到漏洞!

2)扫描应用程序的已验证区域。创建专门用于测试的用户帐户。 Acuentix有一个简单的向导,您可以在其中创建登录序列。如果你正在使用马鹿,你可以给马鹿提供一个饼干,或者给马鹿提供一个发射请求,但这有点棘手。

AFTER 您已经测试了应用程序,然后测试服务器是否配置错误。 要测试您的服务器,那么您需要运行OpenVAS这是Nessus的新免费版本,它现在是商业产品。然后,您应该使用PhpSecInfo进行跟进。这些测试将通知您配置问题或运行旧的易受攻击的软件。

没有什么是100%安全的,永远。无论你做什么,都会有漏洞通过裂缝。所有开发平台都存在漏洞导致无法测试的妥协。您使用的测试工具中也存在错误。有错误的帖子和漏报以及一些不起作用的测试,这是一个很好的例子,我从未见过实际发现合法漏洞的自动CSRF工具。 Acunetix的CSRF测试完全浪费时间。

还有OWASP testing guide更详细的内容。这不应与OWASP Top 10混淆,PHP Security Guide也是一个很好的资源。 {{3}}也是php程序员的一个很好的资源。

答案 1 :(得分:4)

I don't have the money to hire a security consultant since I'm only 16
你16岁并不意味着你没有钱雇佣:D 你不需要雇用任何人。您可以使用许多免费的在线工具来测试Web应用程序的漏洞。

  1. 尝试使用http://www.zubrag.com/tools/sql-injection-test.php 测试SQL注入漏洞

  2. http://www.parosproxy.org网络流量记录器,网络蜘蛛,哈希计算器和用于测试常见Web应用程序攻击(如SQL注入和跨站点脚本)的扫描程序

  3. HP WebInspect software [非免费]测试常见的网络攻击,例如参数注入,跨站点脚本,目录遍历,[尝试使用Google搜索]

  4. http://portswigger.net/suite/ Burp Suite是一个用于攻击Web应用程序的集成平台。它包含所有Burp工具,它们之间有许多接口,旨在促进和加速攻击应用程序的过程。所有工具共享相同的健壮框架,用于处理HTTP请求,持久性,身份验证,上游代理,日志记录,警报和可扩展性。

答案 2 :(得分:2)

您可以查看OWASP

答案 3 :(得分:1)

使用WebCruiser Web漏洞扫描程序扫描SQL注入漏洞,WebCruiser不仅是一个Web安全扫描工具,还是一个自动SQL注入工具,一个XPath注入工具,一个XSS工具。