仅允许来自同一网络服务器的请求的操作

 手机用户2502904013 发布于 2023-02-10 12:59

我有一个MVC控制器暴露了一个Initialise Action.托管在同一IIS上的其他虚拟Web应用程序将需要访问它Action.

出于安全原因,只需要授予来自同一Web服务器(托管MVC应用程序)的请求访问此Iniliase方法的权限.

有人可以帮助如何实现这一目标吗?我们无法使用localhost进行验证,因为此应用程序将托管在不支持locahost请求的Azure中.

1 个回答
  • 我的答案是限制服务器端请求.

    调用该网站Initialise需要做的请求http://www.example.com/controller/Initialise,而不是http://localhost/controller/Initialise(更换www.example.comcontroller与您的域名,当然控制器名称).

    应该在控制器操作中检查HttpRequest.IsLocal:

    if (!Request.IsLocal)
    {
        throw new SecurityException();
    }
    

    这将拒绝任何非来自本地主机的请求.此方法假定调用站点和请求的站点共享相同的IP地址 - 文档声明这应该有效:

    如果请求发起方的IP地址是127.0.0.1,或者请求的IP地址与服务器的IP地址相同,则IsLocal属性返回true.

    为了限制客户端请求Google"csrf缓解".

    2023-02-10 13:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有