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

时间:2013-03-03 21:05:51

标签: php security sql-injection

如果这听起来有点荒谬,请耐心等待,但我刚刚在上一周或两周学习了PHP和jQuery的基础知识。对于任何有经验的人来说,这可能是显而易见的,所以我感谢你能分享的任何信息。

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

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

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

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

  4. 以下是我的问题:

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

    Q2)如何隐藏私有API密钥?浏览器URL栏永远不会包含它,但是有一种简单的方法 - 可能是通过.htaccess文件 - 来保持窥探处理表单数据并返回HTML的php文件的内容?

    问题3)我应该注意哪些其他明显的安全漏洞?有 方法通过API写入数据库(虽然不是没有API密钥和相应的查询字符串语法),那么如何防止恶意用户操纵cURL调用?

    提前感谢您的帮助。现在我已经进入了让我的网站与其他服务器交谈的令人眼花缭乱的世界,我发现自己完全处于我的头脑中,特别是在安全方面。

1 个答案:

答案 0 :(得分:0)

PHP是服务器端,所以除非你回显出密钥或导致警告/错误(可能会抱怨你的url包含api密钥),否则没有问题。你也无法知道api对SQL数据的处理(除非它是开源的),所以它并不重要。如果它们是安全的,那么它们是安全的。如果你不确定你应该向他们询问他们的安全性(从不伤害他们,让他们知道这是一个大问题。)