PHP 电子商务平台 - 反转“数据馈送”以创建“数据推送” - 涉及风险?

Posted

技术标签:

【中文标题】PHP 电子商务平台 - 反转“数据馈送”以创建“数据推送” - 涉及风险?【英文标题】:PHP E-Commerce Platforms - Reversing a "datafeed" to create a "datapush" - Risks involved? 【发布时间】:2014-09-09 12:17:18 【问题描述】:

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

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

请在客户端服务器上创建一个文件,在任何特定时间点使用您自己的服务器定位它。

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

我通常看到的是:

$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

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

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

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

【问题讨论】:

为什么不实现 REST 协议? @JA 我对 REST 了解不多,但它需要启用它的支持吗?如果是这样,当您与各种安装和类型的服务器交互时,这将不起作用。不过,有兴趣听到与此相关的任何反馈! 【参考方案1】:

(转述你的问题:)

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

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

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

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

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

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

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

【讨论】:

谢谢,就帮助我理解这一点而言,这确实是一个完美的答案!我确实明白您在第一个实例中所说的话,如果您已经考虑到安全性,那么这两种类型的攻击都将很难完成。在第二种情况下,我将身份验证视为一项要求,因为我将操纵各种其他平台使用的信息。尽管我的服务器可能会主动推送适当的信息,但滥用此类访问的机会将非常大,其影响将意味着我的项目结束 :) SSL 似乎就是答案! 嗯,没错,如果您要向对方推送更新,您可能想向对方证明 您的 身份。已经有许多身份验证方案可用,从简单的 HTTP 身份验证方法到 Oauth 之类的方法。选择现有标准。

以上是关于PHP 电子商务平台 - 反转“数据馈送”以创建“数据推送” - 涉及风险?的主要内容,如果未能解决你的问题,请参考以下文章

PHP卷曲?阿贾克斯?将 XML 数据馈送作为动态下拉菜单导入

RSA Archer:使用邮件监视器数据馈送获取邮件的附件

RSA Archer:如何从应用程序执行数据馈送

以多种格式输出数据库信息

Zingchart 实时数据馈送

解析数据馈送