2011-06-24 79 views
0

我已經使用PHP構建了一個Web窗體,它接受用戶的基本信息並將它們插入到MSSQL表中。這個網頁表格將被用在公司的外部網站上,並被各種各樣的人使用。使用有限權限創建安全的MSSQL登錄

這種情況下,我假設我需要創建一個使用SQL Server身份驗證的登錄,對嗎?

我寫了一個快速腳本來爲數據庫設置一個新的登錄名和用戶,並賦予它只能從Web表單插入數據的能力。

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腳本的頂部足夠安全還是應該這個細節存儲在別處並使用包含叫什麼名字?

在此先感謝!

回答

0

PHP文件在服務器端執行。這意味着觀看者無法看到代碼,即使使用嚴格限制的帳戶,PHP也非常安全。但是,您必須確保您保護自己免受XSS(跨站點腳本)的攻擊。

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

不要緊,不管你把在PHP腳本的頂部的數據,或者它包含一個單獨的PHP腳本。但是,如果要在多個不同的腳本上連接到數據庫,那麼如果您必須更改任何細節,則會更容易,因爲您只需要更改一個文件即可。

+0

謝謝,那就是我的想法。 有關MSSQL問題的任何想法? – Splatgore