我想知道创造一些与标题含义相比的东西。
有很多网站可以比较商品的价格以及它们的运作方式非常简单。
请客户服务器上的文件,在任何特定时间点使用您自己的服务器进行定位。
因此,在该文件中,任何可执行的代码只能在授权时执行。
我通常看到的是:
$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
我想知道的是,首先,这种方法有多安全?我很确定有几种方法可以解决这个问题,如果有人能提出绕过这种情况的方法,那就太棒了!
然而,我的目标是扭转这一过程。因此,一旦通过身份验证,就可以将数据推送到远程服务器。提取是一回事而输入是另一回事所以我担心这种类型的功能可能会造成严重的安全问题。我想做的是找出我如何能够解决这个问题,以制作一个安全的数据传输器#34;。
任何建议,反馈或意见都将不胜感激;提前谢谢!
答案 0 :(得分:1)
(解释你的问题:)
进行DNS查找并使用它来验证客户端的安全性。
合理安全,但绝不是完美的。第一个问题是它解析的IP可能包含相当多的不同机器,如果它指向NATed网络。如果攻击者能够从该网络内的某个位置发送请求,则可以将其置为正确的远程IP;或者简单地通过以某种方式隧道化请求。从本质上讲,安全性掌握在该域/ IP地址的所有者手中,并且有很多方法可以搞砸它。
相反,攻击者可能会破坏用于解析该IP地址的DNS解析器,允许攻击者将其指向任何他喜欢的IP地址。
这两种攻击都不是不可行的,但也不是微不足道的。如果您发送的信息不是非常机密,那么它可能是一个“足够好”的解决方案。对于非常敏感的数据,这是不行的。
如何确保我将数据推送到远程服务器的身份?
根据您的想法,您的所有服务器真正需要做的是向某个远程服务器发送一些HTTP请求。甚至没有人需要对自己进行身份验证。您的服务器自愿将数据推送到另一个系统,该系统只需要接收它;没有需要认证的真实案例。
但是,您确实希望确保将数据发送到正确的远程系统,而不是其他人。您还希望确保通信安全。为此,请使用SSL。远程系统需要有一个签名的SSL证书,用于验证其身份,并用于加密流量。