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