开发人员的控制面板和Web服务 - 保留在1个项目中还是将它们分开?

时间:2010-11-01 06:55:35

标签: c# asp.net visual-studio web-services api

您是否将开发人员的控制面板和应用程序的Web服务保留在一个项目中?或者你把它们分成两个不同的项目?

(开发人员的控制面板,用于设置Web服务API,检查日志,读取文档规范以及有关每个Web服务的详细信息)

当你主持解决方案时,你会做这样的事情......

developer.domain.com <-- developer's control panel

api.domain.com <--- web service api

or 

api.domain.com <-- both developer's control pnel and web service api

2 个答案:

答案 0 :(得分:0)

我没有理由在以下情况下将其分开:

  • 没有技术理由将它们分开;

  • 您已正确设置身份验证,因此您确定只有开发人员才能访问此内容;

  • 开发人员工具实际上与api.domain.com

  • 有关

如果你是有多个应用程序(api1api2api3等),开发人员网站实际上跨越了这些不同的应用程序,然后,是的,将它们分开。

如果上述原因不适用,请选择最适合的方式。

答案 1 :(得分:0)

我强烈建议将两个域分开(例如,控制面板/文档的“developers.domain.com”和API本身的“api.domain.com”)。这对于跨站点脚本安全非常重要。

如果两者都在“api.domain.com”上,则可能发生以下情况:

  • 假设您已登录控制面板,因此有一个cookie到api.domain.com
  • 你现在访问一个完全不同的网站,evildomain.com,它有一些看似无辜的恶意Flash或Silverlight内容(例如游戏,电影等)
  • 恶意Flash或Silverlight内容会尝试拨打api.domain.com来窃取或修改您的个人信息(它会调用控制面板页面,而不是API本身!)
  • 恶意电话会自动获取浏览器附加的登录Cookie,因此看起来像是对控制面板网站的合法调用
  • api.domain.com必须是跨域启用的(使用crossdomain.xml文件)才能启用来自Flash / Silverlight客户端的合法API调用,因此恶意调用也将通过,因此控制面板网站将受到损害!

有一些方法可以避免上述攻击,同时仍然将API和控制面板保持在同一个域中,但避免它的最简单方法是分离域。