使用有限权限创建安全的MSSQL登录

时间:2011-06-24 04:23:48

标签: php sql-server security login

我使用PHP构建了一个Web表单,它获取用户的基本详细信息并将其插入到MSSQL表中。该网络表格将在公司的外部网站上使用,并被各种各样的人使用。

在这种情况下我假设我需要使用SQL Server身份验证创建登录,对吗?

我写了一个快速脚本来为数据库设置一个新的登录和用户,并且只允许它从网络表单中插入数据。

CREATE LOGIN TESTWeb WITH PASSWORD = 'monkey'
USE companydb
CREATE USER memaw FOR LOGIN TESTWeb
GRANT INSERT TO memaw
Go

显然这些都是捏造的细节。 :)

这是否足够安全?我理解的方式是,这将使登录TESTWeb只能将数据插入数据库'companydb',而不是其他任何内容。

另外,我对通过PHP脚本连接到MSSQL的含义以及它的安全性有点模糊。

<?php

 $server = 'site_man';
 $user = 'TESTWeb';
 $pass = 'monkey';

 $con = mssql_connect($server, $user, $pass);

 //rest of script
?>

在PHP脚本的顶部是否足够安全,或者是否应将此详细信息存储在其他地方并使用INCLUDE调用?

提前致谢!

1 个答案:

答案 0 :(得分:0)

PHP文件在服务器端执行。这意味着观众无法看到代码,即使使用严格限制的帐户,PHP也非常安全。但是,您必须确保自己免受XSS(跨站点脚本)的侵害。

http://www.practicalecommerce.com/articles/509-Protect-Data-From-Cross-Site-Scripting-XSS-Attacks

将数据放在PHP脚本的顶部或将其包含在单独的PHP脚本中并不重要。但是,如果您要在多个不同的脚本上连接到数据库,那么如果您必须更改任何细节,将会更容易,因为您只需要更改一个文件。