是否可以欺骗HttpRequest.UserHostAddressREMOTE_ADDR?

问题描述

| 作为保护Web应用程序的另一种措施,我正在考虑实施客户端IP白名单。 首选方法似乎是:在路由器上执行此操作。但是,在我的情况下,这是一个巨大的管理负担。 我想在网络服务器上的软件中执行此操作。有什么理由不那么安全?     

解决方法

        从最终用户发送到服务器的http请求中,从源IP地址检索HttpRequest.UserHostAddress。一个http请求被分成几个ip数据包,并且源ip号是每个ip数据包中的一个字段。网络上的任何人都可以在“源”字段中制作具有任何ip编号的ip数据包,并将其发送给您。 但是,此方法的实用性受到一定限制。当您响应http请求时,响应将发送到请求中的源IP地址。除非攻击者能够在到达接收方的途中拦截响应,否则攻击者将不会收到响应。例如:如果攻击者向您发送了包含用户名和密码的登录请求,则您可能会使用cookie进行响应。但是由于cookie被发送到伪造的源ip,所以攻击者将永远不会看到它。 IP欺骗在技术上并不困难,但是由于攻击者不会收到响应,因此它通常用于可以通过单个请求完成的攻击。 路由器和防火墙还可以保护您免受带有错误源IP的恶意IP数据包的侵害。大多数防火墙都将使用内部网络的源IP阻止来自外部网络的数据包。     ,        路由器级别的客户端IP白名单已完成,以将流量排除在网络之外,因为如果主机不是来自正确的邻居,则您不希望主机与服务器进行通信。这样可以保护服务器免受仅需要访问网络堆栈的任何数量的OS级攻击。 您实际上在谈论的是使用IP白名单作为服务器上身份验证的另一个因素。它不会帮助您抵御受到正确攻击的黑客,因为未经授权的客户端仍然可以在网络堆栈级别访问您的服务器。 两种方法都容易受到IP欺骗的影响,因此,网络团队有责任防止这种情况的发生。在安全可靠的网络上,您不必担心恶意欺骗。 因此,从安全角度来看,使用客户端IP白名单并没有真正的伤害,但是最后,您可能会浪费时间维护ACL。如果要控制哪些主机可以连接到您的应用程序以限制安全配置文件,则可以使用防火墙或至少路由器访问列表。 编辑:如果您的情况下路由和交换更改过于繁琐,则还应考虑使用OS级防火墙。 回应评论:防火墙白名单将更安全,因为它可以保护免受OS级攻击。 如果您不关心操作系统级别的攻击,那那部分就不重要了,最终答案是肯定的,欺骗攻击是可能的,并且不会,在IIS或ASP.NET中您无能为力。 因此,我仍然可以得出结论,这可能会浪费您的时间,以及需要等待被添加到白名单的用户的时间。但是从安全角度来看,它可能不会伤害您,并且可能使某些攻击者无法将服务器配置为软目标。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...