Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP电子商务平台-逆转a";“数据源”;创建一个;“数据推送”涉及的风险?_Php_Security_Datafeed - Fatal编程技术网

PHP电子商务平台-逆转a";“数据源”;创建一个;“数据推送”涉及的风险?

PHP电子商务平台-逆转a";“数据源”;创建一个;“数据推送”涉及的风险?,php,security,datafeed,Php,Security,Datafeed,我在想是否能创造出一些能与书名相提并论的东西 有这么多的网站可以比较商品的价格,他们是如何进行比较的也很简单 请在客户端服务器上创建一个文件,在任何特定时间点使用您自己的服务器将其作为目标 因此,在该文件中,任何可执行的代码都只能在授权后执行 我通常看到的是: $required_ip = gethostbyname('admin.mydomain.com'); if ($_SERVER['REMOTE_ADDR'] != $required_ip) { die('This file i

我在想是否能创造出一些能与书名相提并论的东西

有这么多的网站可以比较商品的价格,他们是如何进行比较的也很简单

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

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

我通常看到的是:

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

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

如有任何建议、反馈或意见,将不胜感激;提前谢谢

(解释你的问题:)

进行DNS查找并使用该查找对客户端进行身份验证有多安全

相当安全,但绝不完美。第一个问题是,它解决的IP可能包含相当多的不同机器,如果它指向一个网络。如果攻击者能够从网络中的某个地方发送请求,则攻击者可以伪装成正确的远程IP;或者简单地通过一种或另一种方式通过它传输请求。本质上,安全性掌握在该域/IP地址的所有者手中,有许多方法可以将其破坏

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

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

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

使用推送思想,服务器真正需要做的就是向远程服务器发送一些HTTP请求。甚至不需要任何人对自己进行身份验证。您的服务器主动将数据推送到另一个系统,该系统只需要接收数据;没有真正需要身份验证的案例


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

为什么不实施REST协议?@JA我对REST了解不多,但是否需要启用其支持?如果是这样,当您与各种安装和类型的服务器交互时,这将不起作用。我很想听到与此相关的任何反馈!谢谢,这真是一个完美的答案,帮助我理解这一点!我确实明白你第一次说的话,如果你已经考虑到安全问题,那么这两种类型的攻击都很难实现。在第二个例子中,我将身份验证视为一项要求,因为我将操纵其他各种平台使用的信息。虽然我的服务器可能会自动推送适当的信息,但滥用这种访问方式的机会将非常大,其影响将意味着我的项目的结束:)SSL似乎就是答案!嗯,没错,如果你在推送更新,你可能想向另一方证明你的身份。从简单的HTTP身份验证方法到类似Oauth的东西,已经有许多身份验证方案可用。选择现有标准。