我正在开发一个Web应用程序.就像一个合适的人一样,我过去常常使用像Joomla这样的东西制作出令人敬畏的东西,但现在终于弄脏了PHP,MySQL和CodeIgniter.
当您制作可以处理大量数据的严肃网页应用时,我应该采取哪些预防措施来对付我的数据输入以完全消毒它?我知道有明显的修剪,逃逸,xss清洁等 - 但我应该采用什么其他技术来停止注入数据库?
不仅如此,还有任何非破坏性的数据库注入代码,我可以测试我的所有输入吗?就像在,它会注入一些可见的东西,但实际上对我的测试数据库没有任何伤害?我不是一个黑客,需要一点指导.
黑客使用什么其他常见方法来破坏或读取用户的数据,我如何自己检查?我没有钱雇用一名安全顾问,因为我只有16岁,但对计算机有很好的经验,如果给出一些关于它们的提示,我相信我可以做一些技巧.
我知道这是一大堆问题但总结一下,你做了什么来确保一切都是100%安全的?
SQL Injection和XSS是程序员最常犯的错误.好消息是,只要您拥有合适的软件,它们最容易自动测试.当我上笔时,我使用Sitewatch或Wapiti来查找Web应用程序漏洞.Acunetix价格过高.
但是,你不能只是启动一些自动化工具并期望一切正常.您选择的任何漏洞扫描程序都必须采取一些预防措施.
1)确保你的php.ini中的display_errors = On Sql Injection测试依赖于能够在响应页面中看到mysql错误消息!没有错误,没有检测到漏洞!
2)扫描应用程序的已验证区域.创建专门用于测试的用户帐户.Acuentix有一个简单的向导,您可以在其中创建登录序列.如果你正在使用马鹿,你可以给马鹿提供一个饼干,或者给马鹿提供一个发射请求,但这有点棘手.
在测试完应用程序之后,请测试服务器是否配置错误.要测试您的服务器,那么您需要运行OpenVAS,这是Nessus的新免费版本,现在是商业产品.然后你应该用PhpSecInfo来跟进.这些测试将通知您配置问题或运行旧的易受攻击的软件.
永远不会100%安全, 永远.无论你做什么,都会有漏洞通过裂缝.所有开发平台都存在漏洞导致无法测试的妥协.您使用的测试工具中也存在错误.有一些错误的帖子和漏报以及一些不起作用的测试,这是一个很好的例子,我从未见过实际发现合法漏洞的自动化CSRF工具.Acunetix的CSRF测试完全浪费时间.
还有OWASP测试指南 更详细.这不要与OWASP Top 10混淆,后者也是一个很好的资源.在PHP安全指南也是PHP程序员一个很好的资源.