保护PHP web服务调用


Securing PHP web service calls

我正在开发一个网站,调用。php脚本注入数据到MySQL数据库。

因为这些。php脚本没有安全保护,所以只要知道正确的参数名,任何人都可以在网络上运行它们,并将数据注入我们的数据库。

我对安全知之甚少,所以我正在寻找一个解决方案来保护这些"web服务"。

我读到使用SSL可能是一种方法,但我不确定。

如果有人能提出建议,并指出我如何实现这一点的教程或网站,我将非常感激。

如果这很重要,我们正在使用Apache web服务器。

SSL本身无法解决问题。如果有人能击中http://yoursite.com/service.php,他们也能击中https://yoursite.com/service.php。SSL简单地确保通过网络传输的实际数据是加密的。但是加密的注入请求与标准的未加密请求具有相同的效果——您仍然会将数据注入数据库。

你需要的是某种密码系统。一个最基本的系统需要在每个请求中发送一个秘密词,任何没有这个词的请求都会被拒绝/忽略。然而,你必须把这个秘密词保密,网络上没有什么能保密很长时间。

下一步是为服务的每个授权用户分配一个特定的密钥。没有什么可以阻止用户与其他人共享他们的密钥,但是这样你就有了一个每个用户的密钥,你可以追踪并打败共享密钥的人。

在此之后,您可以使用HTTP级别的身份验证,再加上每个用户的访问密钥,这应该可以防止偶然的戳到API。如果没有http级别的密码,甚至不会调用API脚本,即使调用,也必须提供适当的API密钥。