2011-12-09 39 views
0

我正在开发一个调用.PHP脚本以将数据注入到MySQL数据库的网站。保护PHP Web服务调用

由于这些.PHP脚本没有安全性,世界上任何人都可以通过网络运行它们,只要他们知道正确的参数名称并将数据注入到数据库中即可。

我对安全性知之甚少,所以我正在寻找解决方案来保护这些“Web服务”。

我读过使用SSL的方式,但我不确定。

如果任何人可以提出建议,并指向我的教程或网站如何实现这一点,我会非常感激。

我们正在使用Apache Web服务器的方式,如果重要的话。

+0

不知道你的意思是“没有安全性” - 小心SQL注入(http://en.wikipedia.org/wiki/SQL_injection)。 SSL只是确保从客户端到服务器的传输安全的一种方式,但它不会影响您写入数据库的数据。还有很多需要关注的东西,但你需要更具体地说明你想要“保护”什么(也许显示一些代码)。 – Quasdunk

+0

您是否需要首先通过http连接调用这些脚本?如果不是,我的建议是看看(并使用)PHP CLI。这是一个更安全的方法。 – maraspin

回答

2

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

你需要的是某种密码系统。一个简单的骨骼系统将需要一个秘密字符与每个请求一起发送,并且没有该字词的任何请求被拒绝/忽略。然而,那么你必须保密这个秘密词,并且网上没有东西保密很长时间。

接下来是为您的服务的每个授权用户分配一个特定的密钥。没有任何东西可以阻止用户与他人分享他们的密钥,但是你可以获得每个用户的密钥,您可以追踪并殴打DID分享密钥的人。

过去,您可以使用HTTP级别身份验证,并配合每个用户的访问密钥,这样可以防止API随意戳动。如果没有http级别的密码,API脚本甚至不会被调用,甚至在调用API脚本时也必须存在正确的API密钥。

+0

您可以使用它来实现基本的http身份验证:http://php.net/manual/en/features.http-auth.php – SuitedSloth

+0

如果您需要客户端拥有证书才能使用SSL连接到.PHP网站服务,是不是认为安全? – user1090205