测试 Web 应用程序中的安全漏洞:最佳实践?[已关闭]

2022-08-30 17:14:20

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

当您制作严肃的 Web 应用程序来处理大量数据时,我应该对数据输入采取哪些预防措施来对其进行完全清理?我知道有明显的修剪,转义,xss清理等 - 但是我应该结合哪些其他技术来停止注入数据库?

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

黑客还使用哪些其他常用方法来销毁或读取用户的数据,以及我如何自己检查?我没有钱聘请安全顾问,因为我只有16岁,但我对计算机有很好的经验,我相信如果给我一些关于它们是什么的提示,我可以完成一些技巧。

我知道这是一大堆问题,但总结一下,你该怎么做才能确保一切都是100%安全的?


答案 1

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

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

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

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

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

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

还有OWASP测试指南,其中详细介绍了。这不能与OWASP Top 10混淆,后者也是一个很好的资源。PHP安全指南也是php程序员的重要资源。


答案 2

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.orgWeb流量记录器,网络蜘蛛,哈希计算器和用于测试常见Web应用程序攻击(如SQL注入和跨站点脚本)的扫描仪

  3. HP WebInspect软件 [ 不是免费的 ] 测试常见的 Web 攻击,如参数注入、跨站点脚本、目录遍历、[ 尝试谷歌搜索 ]

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


推荐