我的观点是安装在名为WEB
的服务器上的MVC博客(funnelweb)。 SQL Server 2005在DB
上运行。 FunnelWeb站点需要访问自己的数据库。我使用SQL Server Management Studio创建了一个新数据库,并将其命名为FunnelWeb
。我想使用SQL身份验证,因此我继续创建了SQL登录FunnelWebAdmin
。在登录映射中,我已将FunnelWebAdmin
映射到FunnelWeb
数据库,并已授予他对数据库的dbowner权限。我没有授予任何服务器角色的登录权限。
为服务器启用了SQL身份验证。
我的问题是:
我是否需要授予此登录任何服务器角色,以便网站可以使用SQL身份验证连接到数据库?如果是,那么这是最小的一个,以便网站能够操纵数据库。
答案 0 :(得分:0)
除非我遗漏某些设置,否则角色DBAdmin中的用户将授予其登录权。它将赋予它对数据库的完全权利和控制权。
确保锁定该Web应用程序。从Web应用程序向数据库授予管理员权限充其量是危险的。它让你对SQL注入开放,这可以打开各种问题的大门。如果服务器没有正确锁定,一个好的攻击者(或访问谷歌的平庸的攻击者)可以利用SQL注入攻击并获得对操作系统的完全控制。 http://sqlmap.sourceforge.net/doc/BlackHat-Europe-09-Damele-A-G-Advanced-SQL-injection-whitepaper.pdf
即使他们无法控制操作系统,您仍然需要担心数据被盗,插入XSS或XSRF脚本或任何数量的攻击。
我不是说不要这样做,只是为了小心并确保你知道你在做什么。如果存在任何漏洞,通过Web应用程序访问数据库是孩子们的游戏。您可以购买适合自己的工具包,因此攻击者甚至不需要知道他们在做什么。
我真的不知道你的经验水平是什么,所以请原谅我,如果我告诉你一些你已经知道的事情。你的问题表明你更关注你的“初学者”结局光谱,但我可能错了。
假设我是对的,我会提醒你花很多时间在这些网站上,学习你所能做的一切。他们没有在学校或“学习编程”资源(书籍,网络,视频等)中充分教授这些东西。
Writing Secure Code (Microsoft)
即使网站本身无法访问互联网(例如,它在公司内部网上运行,只有登录用户可以访问),您仍需要谨慎。统计数据显示,心怀不满的同事与外部攻击者同样存在威胁。请记住一些事情。