我们知道像往常一样的网站使用功能,如mysqli_query()
和MySQL的PHP驱动程序不允许在single
多个查询 - >查询()调用(但你可以做的phpmyadmin SQL运行的部分尽可能多),所以我们不能直接添加DELETE/UPDATE/INSERT
,但在某些情况下滥用修改数据的可能性。第一件事就是在那种情况下,我认为80%的潜在风险(可能是数据丢失)已经消失了! &第二个是,依靠这个知识,为什么大多数注入教程都是基于并集中于多个查询?SQL注入难题
SQL注入难题
回答
80%的潜在风险(可能是数据丢失)消失了!
这个假设是错误的。
为什么大多数注入教程都基于多个查询?
,因为它只是一个简单易懂例如,概念一个证明。就像一个“如果约翰有两个苹果和迈克五...”。如果真正的迈克不想让苹果吃饱,这并不意味着算术全是错误的。
SQL注入Concudrum
有针剂NO难题。
注射时没有意思。
没有风险的百分比计算,但只是一个二分法:或者你的应用程序是否被破坏。
只有一个简单的规则 - 总是正确地格式化数据,并且您将永远忘记注射。
我没有说过使用多个查询来演示一个'如何做'是错误的和错误的!我说过,为什么他们在实际工作中专注于多个查询,单个查询是最常用的查询! – revo 2013-03-24 12:41:54
很长时间以来,PHP一直禁止针对单个查询()语句运行多个查询。这只是防止sql注入的一部分。你也必须逃避你的投入,使用准备好的陈述,使你的表名和列很难猜测等等。
SQL注入攻击的最简单的例子确实涉及到一个查询被欺骗执行多个查询,但显然PHP通过已经提到的限制防止了很多这样的攻击。但是,子查询之类的事情仍然有可能,所以这不是很好的证明。我认为不可能让sql注入完全不可能,因为人们不断寻找诱骗脚本的新方法。
您所能做的最好的事情就是知道如何完成这些攻击并根据当前接受的最佳实践编写代码以防止此类攻击。如果你已经完成了所有这些工作并仍然遭到黑客入侵,那么可能(但不是肯定)它不是你的SQL,而是你的安全性中最薄弱的环节。据我所知,更多的时候黑客通过社交工程技术获得成功。
制作一个不可破解的系统几乎是不可能的,所以你可以做的最好的事情是让它很难被破解,因此,不是“低挂的果实”,换句话说,不是一个简单的目标。
为什么选择投票?我没有回答这个问题吗? – starshine531 2013-03-24 13:20:36
tnx为答案,我没有足够的声誉downvote,但是如果我有,我也不会downvote。 – revo 2013-03-24 13:58:53
- 1. 命令注入DVWA硬难题
- 2. Sql注入问题
- 3. sql注入问题
- 4. SQL注入问题
- 5. SQL连接难题
- 6. 解决SQL注入问题
- 7. SQL查询疑难问题
- 8. VB.Net SQL插入难度
- 9. 我很难注入sql到我的项目
- 10. 关于SQL注入的问题
- 11. 基本的PHP SQL注入问题
- 12. 修复_mysql的SQL注入问题
- 13. 复杂范围与SQL注入问题
- 14. SQL注入的问题在C#查询
- 15. 的InfoPath查询和SQL注入问题
- 16. SQL注入
- 17. 盲SQL注入
- 18. TableAdapters SQL注入
- 19. mysqli_stmt_bind_param SQL注入
- 20. DocumentDB Sql注入?
- 21. SQL Server注入
- 22. 笨SQL注入
- 23. MSAccess SQL注入
- 24. SQL注入法
- 25. EJB3 SQL注入
- 26. Rails SQL注入?
- 27. SQL注入$ db-> query($ sql)?
- 28. Linq到SQL和SQL注入
- 29. SQL防止SQL注入
- 30. 疑难解答SQL Server内存问题
你确定大部分教程都是关于多重查询的吗? – 2013-03-24 12:41:36
@silentboy,如果我信任我的眼睛,是的 – revo 2013-03-24 12:45:01
然后,也许你已经看到刚刚在这个主题上发布1/2教程的博客的教程。我认为大多数注射剂都是基于消毒 – 2013-03-24 12:51:17