如何使用 PHP 安全地连接到内部网络 SQLSRV 数据库?

Posted

技术标签:

【中文标题】如何使用 PHP 安全地连接到内部网络 SQLSRV 数据库?【英文标题】:How do I connect to an internal network SQLSRV database securely with PHP? 【发布时间】:2012-05-01 14:08:11 【问题描述】:

我已阅读此内容,这可能与我收到的 Login failed for user 'NT AUTHORITY\IUSR' 错误消息有关

fastcgi.impersonate 设置为 1

在 SQL 数据库中没有 NT AUTHORITY\IUSR 设置,但在我设置之前我想知道它是否安全,或者是否允许任何人使用它进行连接。

如果这不是一种安全的连接方式,我该如何使用 php 安全地连接到我的数据库?

带有虚拟信息的当前 PHP:

// Server in the this format: <computer>\<instance name> or 
// <server>,<port> when using a non default port number
$server='server\login';
$connectinfo=array("Database"=>"mydatabase");
//connect to DB
$db=sqlsrv_connect($server,$connectinfo);

if($db)

echo "Connection established.<br/>";

else

echo "Connection couldn't be established.<br/>";
die(print_r( sqlsrv_errors(), true));

【问题讨论】:

除非出现未知的安全问题,它与 Windows 登录本身一样安全。那么,该登录的安全性如何? (其他人/应用程序在实际以 IUSR 身份登录时尝试连接到 SQL Server 的可能性有多大?) 默认添加并授予权限后,是否可以在不知道任何windows登录信息的情况下进行外网访问? 不,该帐户不能被外部用户欺骗。一个演示(但不是证明)是在 SQL Server 中创建凭据,然后从客户端计算机中删除 IUSR 帐户(不确定是否需要删除 IIS 来执行此操作),然后重新创建 IUSR 帐户(可能通过重新- 安装 IIS)。新帐户(在同一台计算机上并具有相同的“名称”)将无法连接到 SQL Server。因为它是一个新帐户,即使它看起来一样。请注意其他应用程序等能够使用 IUSR 帐户并隐式访问您的 SQL Server。 我放弃了使用IUSR,因为它会导致网络中的一些漏洞,并专门为我的数据库创建一个新的SQL用户。 网络中有哪些漏洞?在一台机器上创建的 IUSR 帐户不能欺骗另一台机器 【参考方案1】:

在 SQL Server 2008 中创建了我自己的用户帐户,其范围仅限于我正在处理的数据库。

【讨论】:

以上是关于如何使用 PHP 安全地连接到内部网络 SQLSRV 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 AngularJS 站点安全地连接到 web api

如何从 Cloud Run 安全地连接到 Cloud SQL?

如何从无服务器应用程序安全地连接到 AWS DynamoDB 或其他 aws 数据库

将存储安全地连接到 Azure Data Lake Analytics 或数据工厂

什么是VPN?VPN的功能、基本原理以及配置方法。

在 Windows 上将 PHP 连接到 SQL Server