SQL注入与API查询,以及其他安全问题


SQL injection with API query, and other security issues

如果这听起来有点荒谬,请原谅我,但我在过去一两周才刚刚学习了PHP和jQuery的基础知识。这对任何有一点经验的人来说都是显而易见的,所以我很感激你能分享的任何信息。

我正在更新我的网站,包括一个自定义搜索功能,通过cURL调用查询SQL数据库。简而言之:

  1. 我从HTML表单(包括文本框)中获取用户输入,然后将值POST到我的服务器上的php文件(searchfunction.php)。

  2. searchfunction.php然后处理表单数据,将其添加到包含私有API密钥的URL查询字符串中(格式为http://apidomain/[API key]/request.php?querystring),并通过curl_init发送到第三方服务器。

  3. 第三方服务器然后根据URL的查询字符串返回一个序列化的php数组。然后,php文件处理数组并回显一些出现在与原始用户表单相同页面上的HTML(通过一些我几乎无法理解的jQuery魔法)。

以下是我的问题:

Q1)因为我发送一个cURL字符串的API 然后处理所有的SQL的东西,我在SQL注入的任何风险?如果是这样,消除这种风险背后的理论是什么?

Q2)如何隐藏API私钥?浏览器的URL栏永远不会包含它,但是是否有一种简单的方法——也许是通过.htaccess文件——使窥探的目光远离处理表单数据并返回HTML的php文件的内容?

Q3)是否有其他明显的安全漏洞需要我注意?有方法可以通过API写入数据库(尽管没有API键和适当的查询字符串语法),那么如何防止恶意用户操纵cURL调用呢?

提前感谢您的帮助。现在,我已经进入了让我的网站与其他服务器对话的令人困惑的世界,我发现自己完全超出了我的范围,特别是在安全方面。

PHP是服务器端,所以除非你回显出键或引起警告/错误(这可能会抱怨你的url包含api键),否则没有问题。而且您也无法了解api对SQL数据的处理(除非它是开源的),所以这并不重要。如果他们是安全的,他们就是安全的。如果你不确定,你应该问问他们的安全问题(让他们知道这是件大事,永远不会有坏处)。