0

我想知道创建一些可以与标题含义相比较的东西。

有很多网站可以比较商品的价格,而且它们的操作方式非常简单。

请在客户端服务器上创建一个文件,在任何特定时间点使用您自己的服务器将其作为目标。

因此,在该文件中,任何可执行的代码都只能在授权时执行。

我经常看到的是:

$required_ip = gethostbyname('admin.mydomain.com');
if ($_SERVER['REMOTE_ADDR'] != $required_ip) {
    die('This file is not accessible.');
}
// Do some stuff like turn the remote product data into xml format and export to your local server

首先我想知道的是,这种方法有多安全?我很确定有几种方法可以解决这个问题,如果有人能提出绕过这种情况的方法,那就太好了!

然而,我的目标是扭转这个过程。因此,一旦经过身份验证,数据就可以推送到远程服务器。提取是一回事,输入是另一回事,所以我担心这种类型的功能会造成严重的安全问题。我想做的是找出我可能如何解决这个问题,以制作一个安全的“数据推送器”。

任何建议、反馈或意见将不胜感激;提前致谢!

4

1 回答 1

1

(转述你的问题:)

进行 DNS 查找并使用它来验证客户端的安全性如何。

相当安全,但绝不是完美的。第一个问题是它解析的 IP 可能包含许多不同的机器,如果它指向一个 NATed 网络。如果攻击者能够从该网络中的某处发送请求,则攻击者可以伪装成正确的远程 IP;或者只是通过以一种或另一种方式通过它的隧道请求。从本质上讲,安全性掌握在该域/IP 地址的所有者手中,并且有很多方法可以搞砸它。

相反,攻击者可能能够毒害用于解析该 IP 地址的 DNS 解析器,从而允许攻击者将其指向他喜欢的任何 IP 地址。

这两种攻击都不是不可行的,尽管也不是微不足道的。如果您发送的信息不是非常机密,这可能是一个“足够好”的解决方案。对于真正敏感的数据,这是不行的。

如何确保我将数据推送到的远程服务器的身份?

根据您的推送想法,您的服务器真正需要做的就是向某个远程服务器发送一些 HTTP 请求。甚至根本不需要任何人来验证自己的身份。您的服务器自愿数据推送到另一个系统,该系统只需要接收它;没有需要身份验证的真实案例。

但是,您确实要确保将数据发送到正确的远程系统,而不是其他人。您还想确保通信安全。为此,请使用 SSL。远程系统需要有一个签名的 SSL 证书来验证其身份,并用于加密流量。

于 2014-07-18T11:23:32.123 回答