我的场景是安装在名为WEB的服务器上的MVC Blog (funnelweb)。SQL Server2005在DB上运行。FunnelWeb站点需要访问它自己的数据库。我使用SQL Server Management Studio创建了一个新数据库,并将其命名为FunnelWeb。我想使用SQL身份验证,所以我创建了一个SQL登录FunnelWebAdmin。在登录映射中,我将FunnelWebAdmin映射到FunnelWeb数据库,并授予他对数据库的dbowner权限。我尚未向登录名授予任何服务器角色。
已为服务器启用SQL身份验证。
我的问题是:
我是否需要授予此登录任何服务器角色,以便网站可以使用SQL身份验证连接到数据库?如果是,哪一个是最小的一个,以便网站能够操作数据库。
发布于 2011-09-24 05:05:14
除非我遗漏了某些设置,否则角色DBAdmin中的用户将获得登录的权限。它将赋予它对数据库的完全权限和控制权。
确保您锁定了该web应用程序。在web应用程序中提供数据库的管理员权限充其量也是危险的。它为SQL注入敞开了大门,SQL注入可以为所有类型的问题打开大门。如果服务器没有正确锁定,一个好的攻击者(或一个可以访问google的平庸攻击者)可以利用SQL注入攻击,并获得对操作系统的完全控制。http://sqlmap.sourceforge.net/doc/BlackHat-Europe-09-Damele-A-G-Advanced-SQL-injection-whitepaper.pdf
即使他们无法控制操作系统,您仍然需要担心数据被盗、插入XSS或XSRF脚本或任何数量的攻击。
我并不是说不要这样做,只是为了小心,并确保你知道你在做什么。如果有任何漏洞,通过web应用程序访问数据库是孩子们的游戏。你可以购买一些工具包来帮你做到这一点,所以攻击者甚至不需要知道他们在做什么。
我真的不知道你的经验水平是什么,所以请原谅我告诉你一些你已经知道的事情。你的问题表明你在光谱的“初学者”端,但我可能是错的。
假设我是对的,我真的要提醒你花大量的时间在这些网站上,学习你能学到的一切。他们没有在学校或“学习编程”资源(书籍、网络、视频等)中充分教授这些东西。
Writing Secure Code (Microsoft)
即使网站本身不能通过Internet访问(例如,它运行在企业内部网上,只有登录的用户才能访问),您仍然需要小心。统计数据显示,与外部攻击者一样,拥有访问权限的心怀不满的同事也是一个威胁。只是一些需要牢记的事情。
https://stackoverflow.com/questions/7534654
复制相似问题