【问题标题】:Allowing clients to connect to my database from their different sites without seeing the db connection parameters允许客户端从他们的不同站点连接到我的数据库,而无需查看数据库连接参数
【发布时间】:2011-06-07 09:16:04
【问题描述】:

我希望我的客户(经销商客户)能够从他们的不同站点连接到我的数据库 (mysql),而无法使用 PHP 查看具有 db 连接参数的文件。

请问我怎样才能做到这一点?

【问题讨论】:

    标签: php mysql database-connection


    【解决方案1】:

    通过使用隧道。您需要创建一个脚本来连接到 MySQL 并向请求方公开 MySQL PHP API。之后,您的经销商使用该脚本与 MySQL 对话。这表明隧道脚本本身应该有某种密码保护,这样您就不会让任何人使用您的 MySQL。

    【讨论】:

    • 你能举一个这样的脚本的例子,或者一个例子的链接吗?
    • SQLYog(我最喜欢的 MySQL GUI)有一个这样的脚本,用于 http 隧道。下载程序,您可以获取代码并使用它。 webyog.com/faq/content/21/19/en/what-is-http_tunneling.html 有一个简短的解释,解释了 SQLYog 如何使用 HTTP 隧道。当您无法从远程 IP 连接时,它很有用,只能从服务器的本地主机连接。这就是隧道脚本发挥作用的地方。
    • 感谢您的帮助。我已经下载了程序,但找不到任何可以玩的代码
    • 程序的企业版支持隧道,这意味着我真的不允许发布他们的 php 脚本的代码:) 但是,如果你想让你的用户使用 mysql_ * 或 mysqli_* 甚至 PDO - 没有实际暴露数据库凭证 - 它不会工作。您只能创建他们使用的包装器(隧道脚本),然后构建 API 供他们使用。这并不是真正的最佳做法,我只是将 MySQL 公开给具有防止他们损坏数据库的帐户的经销商。
    【解决方案2】:

    This question 会告诉你如何加密连接字符串。

    this one 告诉你如何安全连接。

    【讨论】:

    • 这不是正确的答案。那么,您将如何让您的经销商连接?通过为他们提供加密数据和密钥以与 PDO / mysql(i)_ 函数一起使用?
    • 问题说他们正在使用 PHP 进行连接。你认为他们会以其他方式联系吗?
    • 如果 OP 想要隐藏数据库详细信息,加密的意义何在?他们需要解密数据,以便可以与 mysql 函数一起使用,这意味着他们还可以读取实际的连接信息。这使得加密完全没有意义,所以这不是一个正确的答案。
    猜你喜欢
    • 2020-02-09
    • 2020-03-22
    • 1970-01-01
    • 2015-05-10
    • 2020-12-19
    • 2011-09-15
    • 2014-08-20
    • 1970-01-01
    • 2014-12-31
    相关资源
    最近更新 更多