微软推荐在多人开发的情况下使用Visual InterDev的Local模式。偶尔你在站点开发中也会也到一些使用Local 模式很不方便的情况,这个时候你只能选择Master模式。
我最近在给一个大客户工作,出于对站点复杂性和将采用的结构的考虑,该客户选择了使用Master 模式进行开发。第一次使用Visual InterDev的Master 模式,我就遭遇了一个安全漏洞。
如果你在Visual InterDev的Master模式下开发项目,并且通过IDE保存一个文件,那么你对文件所做的改动会自动地传播给主控Web应用程序。我发现在Master模式下对一个已经调试好的文件所做的任何改动都会自动的应用到主Web应用程序——不管这个改动是什么改动。如果你在开发机器上的Windows Explorer中剪切或者粘贴了一个开发文件的话,你将会相应地更新主Web应用程序。
如果一个黑客在一个开发机器上浏览的话,它可以通过IDE上传一个文件,这个变动将自动的传播到主Web应用程序,从而轻易地攻击主Web应用程序。如何降低这种危险程度?如果你处在这种必须使用Master模式的情况下,有很多方法可以防止这种攻击。
首先你要为Web应用程序设置多种环境。可能你认为这是必然的,很多人都会这么做,但是我的这个客户就只有一个“production”环境。很多人做软件经常会出现这种情况,一个人在业余时间写起,发展到最后多人参与,结果最后没有时间进行计划或组织。
在使用多环境时,下班提交文件前一定要检查你对文件所做的改动。例如,一个开发者在下午的时候查看了一个站点的About Us页时做了一些更新,然后就放到那里回家睡觉了。晚上一个黑客就进入了那个开发者的工作站对About Us页做了些改动。第二天早上,站点就从开发环境转到了产品环境。开发者开始工作,没有仔细检查他对那个文件所做的改动就提交了他的文件。大概下午的时候,有人发现了这个错误,那个开发者得花几个钟头的时间解释为什么会出现这种情况。
我想提的最后一件事是开发者要意识到在开发机器上增强安全措施的重要性。开发者老是认为那些安全问题根本不会发生在他们身上,尤其是当安全措施妨碍了他们的工作时。你将机器配置成什么样子并不意味着它就一直是那个样子。如果你雇请了一个聪明的开发人员,那么在配置开发环境时他就有可能清除掉所有看上去不必要的障碍。
我建议你在使用Visual InterDev时选择使用Local模式。如果必须使用Master模式的话,我推荐你一定要记住本文讨论的话题。详细检查一下你现在的程序看看你是否忽视了什么安全漏洞。