我正在开发一个Web应用程序。就像一个合适的人一样,我过去曾使用像Joomla这样的东西制作出令人敬畏的东西,但现在终于弄脏了PHP,MySQL和CodeIgniter。
当您制作可以处理大量数据的严肃网络应用时,我应该采取哪些预防措施来对付我的数据输入以完全消毒它?我知道有明显的修剪,逃逸,xss清洁等 - 但我应该采用什么其他技术来停止注入数据库?
不仅如此,还有任何非破坏性的数据库注入代码,我可以测试我的所有输入吗?就像在,它会注入一些可见的东西,但实际上对我的测试数据库没有任何伤害?我不是一个黑客,需要一些指导。
黑客使用什么其他常见方法来破坏或读取用户数据,我如何自行检查?我没有钱雇用一名安全顾问,因为我只有16岁,但对计算机有很好的经验,如果给出一些关于它们的提示,我相信我可以做一些技巧。
我知道这是一大堆问题,但总结一下,你如何确保一切都100%安全?
答案 0 :(得分:20)
SQL注入和XSS是程序员最常犯的错误。好消息是,只要您拥有合适的软件,它们最容易自动测试。当我使用pentest时,我使用Sitewatch或Wapiti来查找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应用程序的漏洞。
尝试使用http://www.zubrag.com/tools/sql-injection-test.php 测试SQL注入漏洞
http://www.parosproxy.org:网络流量记录器,网络蜘蛛,哈希计算器和用于测试常见Web应用程序攻击(如SQL注入和跨站点脚本)的扫描程序
HP WebInspect software [非免费]测试常见的网络攻击,例如参数注入,跨站点脚本,目录遍历,[尝试使用Google搜索]
http://portswigger.net/suite/: Burp Suite是一个用于攻击Web应用程序的集成平台。它包含所有Burp工具,它们之间有许多接口,旨在促进和加速攻击应用程序的过程。所有工具共享相同的健壮框架,用于处理HTTP请求,持久性,身份验证,上游代理,日志记录,警报和可扩展性。
答案 2 :(得分:2)
您可以查看OWASP。
答案 3 :(得分:1)
使用WebCruiser Web漏洞扫描程序扫描SQL注入漏洞,WebCruiser不仅是一个Web安全扫描工具,还是一个自动SQL注入工具,一个XPath注入工具,一个XSS工具。