Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 开发商';s控制面板和web服务-保留在一个项目中还是将它们分开?_C#_Asp.net_Visual Studio_Web Services_Api - Fatal编程技术网

C# 开发商';s控制面板和web服务-保留在一个项目中还是将它们分开?

C# 开发商';s控制面板和web服务-保留在一个项目中还是将它们分开?,c#,asp.net,visual-studio,web-services,api,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 deve

您是否将开发人员的控制面板和应用程序的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

developer.domain.com在以下情况下,我不认为有理由将其分开:

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

  • 您已经正确地设置了身份验证,因此您可以确保只有开发人员才能访问此文件

  • 开发人员工具实际上专门绑定到
    api.domain.com

例如,如果您有多个应用程序(
api1
api2
api3
,等等),并且开发人员站点实际上跨越了这些不同的应用程序,则可以将它们分开


如果上述原因不适用,请选择您认为最合适的领域。

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

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

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

有多种方法可以避免上述攻击,同时仍将API和控制面板保持在同一个域上,但最简单的方法是将域分开

我将它们分开,因为我不确定以后是否会有很多应用程序或web服务(我选择最安全的路线,这是最安全的)。如果你设计开发工具,使你以后能够跨越多个站点,那么是的,一个单独的域是可行的。嗯,我很困惑,假冒网站如何处理用户的cookie?cookie在用户的计算机上!此外,api和控制面板没有相同的用户凭据。ie开发者控制面板用户名和密码以及API用户名和密码是两种完全不同的凭据。也没有为API创建会话,只有在使用web应用程序/开发人员控制面板时才创建会话。邪恶网站提供一个在用户浏览器中运行的Flash(或Silverlight)应用程序,这意味着它可以使用用户的cookie发出请求。有关更详细的描述,请参阅-这篇博客文章是Silverlight特有的,但同样的逻辑也适用于Flash。