我有1个主要网站,我想从iPhone应用程序的主要网站插入数据。在这种情况下,我想通过$ _GET插入数据,如果我这样做,我应该采取哪些预防措施?其他解决方案?这会被称为API吗?
回答
确保您采取预防措施,以防止SQL Injection Attacks, as described on the PHP documentation site。
Wikipedia has good summary of Code Injection一般。
其他类型的注射,你应该特别关注作为一个PHP开发人员将包括(但不一定局限于):
“shell命令注入” - 见PHP's escapeshellarg()。
“包含文件注入” - 避免包括文件的名字都直接从已提交的用户数据产生。如果您必须这样做,那么解析该值,并强制包含的文件位于应用程序中的“安全”目录中,其中不能找到其他敏感数据或非幂等脚本。
在互联网上有很多的阅读。花一些时间与谷歌追踪并阅读它。这些技术和关注点适用于所有语言和平台 - 不仅仅是PHP - 因此您将始终使用您学习的信息。
祝你好运。
作为一个快速的总结......想象一下,如果有人进入"1'; DROP TABLE users; --"
。您的SQL查询可能如下所示:"...WHERE id='1'; DROP TABLE users; --';"
。 (SQL中的--
是注释 - 忽略它后的所有内容。)最终,他们会正确猜测您的某个表名,并且您已经失去了一切。或者他们可以做到这一点放“管理员”的用户名外地和"password' OR 1=1; --"
在密码字段,导致一个查询,看起来像这样"SELECT * FROM users WHERE username='Administrator' AND password='pass' OR 1=1; --';"
。当1 = 1总是评估为真时,他们将能够以他们想要的任何人登录。
为了避免这种情况,只为你所有$_GET
瓦尔做$password=mysql_real_escape_string($_GET['password'],$query_reference);
。
- 1. 使用$ _GET变量插入数据库
- 2. 数据库标准化注意事项
- 3. 在并行调用mysql数据库时的注意事项
- 4. 如何将意外事件表插入SQL Server数据库?
- 5. 利用主数据服务时的数据库设计模式/注意事项
- 6. 将数据插入SQL Server数据库使用ADO.Net数据集
- 7. 插入项目数据库
- 8. 将数据插入到cPanel数据库
- 9. 将项目插入数据库
- 10. 无法将数据插入数据库
- 11. Ajax将数据插入数据库
- 12. 将SQLite数据插入MySql数据库
- 13. 将数据插入数据库Java JDBC
- 14. 将数据插入数据库?
- 15. JSP将数据插入MYSQL数据库
- 16. 将数据插入数据库
- 17. errro将数据插入数据库时
- 18. 将数据插入MYSQL数据库
- 19. 将数据插入数据库 - LARAVEL
- 20. 监视SQL数据库表更改的设计注意事项
- 21. 将数据插入SQLite数据库
- 22. 简单的数据库注意事项和CakePHP
- 23. 无法将数据插入数据库
- 24. 将JSON数据插入数据库表
- 25. 使用PHP将数组数据值插入MySQL数据库表
- 26. 使用PDO将数组数据插入到数据库中
- 27. 无法将数据插入到MySQL事件数据库中
- 28. 使用JDBC将数据插入Oracle数据库的问题
- 29. 使用C#中的数据库值填充ConcurrentDictionary的锁定注意事项
- 30. 使用VB.Net将数据插入到Access数据库