是否有可能欺骗您的IP ...正在测试IP地址是否安全?

JD *_*cks 9 php security ip

我在网站上有一些额外的功能,员工可以使用但不允许客户查看.

员工都将进入一系列领域.

我所做的是像这样得到用户ip:

$user_ip = gethostbyname($_SERVER['REMOTE_ADDR']);
Run Code Online (Sandbox Code Playgroud)

然后,我获得了用户将使用的域的所有ips的数组 gethostbyname

然后我检查用户是否在其中一个域上:

in_array($user_ip,$allowedIPS)
Run Code Online (Sandbox Code Playgroud)

因此,如果用户位于其中一个域中,则会看到其他功能供内部使用.否则他们只看到对公众意味着什么.

我的问题是,这是安全的吗?或者有人可能欺骗他们的IP看起来像他们在我们的域名并获得这些功能的访问权限?

Art*_*cto 8

我的问题是,这是安全的吗?或者有人可能欺骗他们的IP看起来像他们在我们的域名并获得这些功能的访问权限?

不,除非他们也可以访问其中一个允许的IP的网络,否则其中一个IP下的任何允许的计算机都会受到攻击并代理流量.

在您的方案中,它似乎足够好.好吧,除非特权用户在没有某种VPN的情况下不允许从其他IP访问内容.

请注意,IP欺骗通常具有与您使用的不同的含义.这意味着只伪造数据包的源地址.这本身就没有价值,因为要访问服务,还需要从服务器接收响应.由于更好的路由,即使在这种意义上的"IP欺骗"也很少见.


roo*_*ook 8

由于Three Way Handshake,不可能在开放的互联网上欺骗TCP连接.但是,可以使用CSRF访问此功能.

PHP $_SERVER['REMOTE_ADDR']直接从Apache的TCP套接字中提取,因为它不会受到攻击者的影响.是的,我看过这段代码.