Nil*_*Pun 5 security asp.net-mvc
我有一个MVC控制器暴露了一个Initialise Action.托管在同一IIS上的其他虚拟Web应用程序将需要访问它Action.
出于安全原因,只需要授予来自同一Web服务器(托管MVC应用程序)的请求访问此Iniliase方法的权限.
有人可以帮助如何实现这一目标吗?我们无法使用localhost进行验证,因为此应用程序将托管在不支持locahost请求的Azure中.
我的答案是限制服务器端请求.
调用该网站Initialise需要做的请求http://www.example.com/controller/Initialise,而不是http://localhost/controller/Initialise(更换www.example.com并controller与您的域名,当然控制器名称).
应该在控制器操作中检查HttpRequest.IsLocal:
if (!Request.IsLocal)
{
throw new SecurityException();
}
Run Code Online (Sandbox Code Playgroud)
这将拒绝任何非来自本地主机的请求.此方法假定调用站点和请求的站点共享相同的IP地址 - 文档声明这应该有效:
如果请求发起方的IP地址是127.0.0.1,或者请求的IP地址与服务器的IP地址相同,则IsLocal属性返回true.
为了限制客户端请求Google"csrf缓解".
Access-Control-Allow-Origin告诉浏览器其对域的可访问性。尝试指定:
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "yourdomain")
Run Code Online (Sandbox Code Playgroud)
我还没有测试过它是否有效。
| 归档时间: |
|
| 查看次数: |
5103 次 |
| 最近记录: |