使数据库可用于其他服务器

时间:2011-07-14 06:02:35

标签: php javascript database

行, 我不太清楚如何提出这个问题,所以请随时编辑它。

这是个主意。

我有一个我认为可能对网站管理员有用的数据库。 作为付费服务,我想提供一些与数据库的接口。 我希望我的数据库动态填充下拉选项菜单。

我理解当数据库,请求html / javascript和处理php都在同一台服务器上时如何做到这一点。

如果请求html html / javascript在网站管理员服务器上,并且处理phps和数据库在我的服务器上,我不确定是否可以这样做。

我也不确定如何确保只有授权用户可以连接到我的数据库。

此时,我正在寻找一个宏级解决方案,而不是代码实现。

谢谢!

3 个答案:

答案 0 :(得分:2)

我建议您创建一个简单的Web服务(例如PHP页面从数据库中获取信息,根据您指定的查询字符串中声明的请求),而不是直接连接到远程数据库服务器,为您生成XML / JSON网页。

您的网页包含您的下拉框,可以发出AJAX请求来获取XML&解析数据。使用此机制,可以避免因暴露数据库而导致的安全问题。

答案 1 :(得分:1)

我的方法是编写一个Web服务(无论是SOAP,XMLRPC还是REST),要求用户为每个请求提交API密钥。该服务将验证密钥,与数据库通信,并以某种标准格式将结果返回给用户。对于每个用户/订阅,API密钥(显然)都是唯一的。

答案 2 :(得分:0)

您可以将请求的结果以JSONP格式(带填充的json)返回给php脚本。这允许javascript在原始网页上执行回调方法,即使该服务在另一个域上。

您可能需要某种方法来跟踪PHP代码中的状态,以确定它们是否经过身份验证。一种方法是让第三方网页的作者在身体上载时将身份验证令牌发送到您的PHP脚本。然后,您可以将客户端的IP地址标记为“已验证”,然后来自同一IP的所有其他请求将返回有效结果。来自未经身份验证的IP的请求可能会返回错误消息。

在我们的NAT(网络地址转换)世界中,IP显然不是唯一的。如果你想要它更加万无一失,你可以在PHP&中生成自己的令牌。从请求发回它以进行身份​​验证。第三方网站会将该令牌存储在内存(或cookie)中。每次请求都会将其发回给您。您将使用该令牌作为未来请求的身份验证证明,而不是IP。这基本上是大多数服务器执行Sessions的方式,PHP可能内置了一些内容。

相关问题