0

我的方案是安装在名为WEB. SQL Server 2005 在DB. FunnelWeb 站点需要访问自己的数据库。我使用 SQL Server Management Studio 创建了一个新数据库并将其命名为FunnelWeb. 我想使用 SQL 身份验证,所以我继续创建了一个 SQL login FunnelWebAdmin。在我已映射FunnelWebAdminFunnelWeb数据库的登录映射中,并已授予他对 db 的 dbowner 权限。我没有授予登录任何服务器角色。

为服务器启用 SQL 身份验证。

我的问题是:

我是否需要为此登录授予任何服务器角色,以便网站可以使用 SQL 身份验证连接到数据库?如果是,这是站点能够操作数据库的最低要求。

4

1 回答 1

0

除非我错过了角色 DBAdmin 中的用户将授予它登录权限的设置。它将赋予它对数据库的全部权利和控制权。

确保锁定该 Web 应用程序。从网络应用程序授予数据库管理员权限充其量是危险的。它让您对 SQL 注入持开放态度,这可能会为各种问题打开大门。如果服务器没有正确锁定,一个好的攻击者(或者一个可以访问谷歌的普通攻击者)可以利用 SQL 注入攻击并获得对操作系统的完全控制。 http://sqlmap.sourceforge.net/doc/BlackHat-Europe-09-Damele-AG-Advanced-SQL-injection-whitepaper.pdf

即使他们无法控制操作系统,您仍然需要担心数据被盗、插入 XSS 或 XSRF 脚本或任何数量的攻击。

我并不是说不要这样做,只是要小心并确保您知道自己在做什么。如果有任何漏洞,通过 Web 应用程序访问数据库是小菜一碟。你可以购买一些工具包来为你做这件事,所以攻击者甚至不需要知道他们在做什么。

我真的不知道你的经验水平是什么,所以如果我告诉你一些你已经知道的事情,请原谅我。 您的问题表明您更处于光谱的“初学者”端,但我可能错了。

但是,假设我是对的,我真的会提醒您在这些网站上花费大量时间,尽可能学习一切。他们在学校或“学习编程”资源(书籍、网络、视频等)中没有充分教授这些东西。

OWASP 前 10 名

编写安全代码(微软)

即使网站本身不能通过 Internet 访问(例如它在公司 Intranet 上运行并且只有登录的用户可以访问),您仍然需要谨慎。统计数据显示,拥有访问权限的心怀不满的同事与外部攻击者一样构成威胁。只是要记住的事情。

于 2011-09-23T21:05:14.220 回答