Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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中从flash文件获取请求时检查ip_Php_Flash_Security - Fatal编程技术网

在php中从flash文件获取请求时检查ip

在php中从flash文件获取请求时检查ip,php,flash,security,Php,Flash,Security,我有一个flash文件,每5分钟向php文件发送一次请求。如何检查flash文件中的请求是否已从我的网站或其他地方发送。我希望成为舒尔的一员,确保有人没有从其他位置发送请求。出于安全原因,这非常重要。下面的PHP代码可以工作吗 if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $user_ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $user_

我有一个flash文件,每5分钟向php文件发送一次请求。如何检查flash文件中的请求是否已从我的网站或其他地方发送。我希望成为舒尔的一员,确保有人没有从其他位置发送请求。出于安全原因,这非常重要。下面的PHP代码可以工作吗

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        $user_ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
        $user_ip=$_SERVER['REMOTE_ADDR'];
    }

如果您想要真正安全的解决方案,您需要某种令牌机制

当客户端请求flash文件时,服务器端PHP将生成以下字符串:

user_id(if any):client_ip:clinet_forwarded_ip(if any):some_random_string
然后您需要使用符号安全算法(如AES256)加密此字符串。因此,这将是您的闪存访问令牌。然后,您通过flashvars将此令牌传递给flash,在每次请求时,flash都需要将此令牌发送回以验证其身份


在接收令牌时,您需要对其进行解密,所以首先,如果它进行了解密,则意味着您知道该令牌是通过匹配密钥加密的,我假设只有您拥有该密钥。然后,您需要验证封装到令牌中的所有字段是否与发送请求的客户端匹配。如果任何字段不匹配,您需要拒绝该请求。

来自flash文件的请求将始终来自您的用户IP,因为该文件在他们的机器上本地执行。实际上,我已经有了这种解决方案。但加密字符串第一次被java服务器创建并插入到数据库中。然后每隔5分钟java从数据库中获取字符串,将其传递给flash,flash将其传递给php。php检查字符串,如果一切正常,它将生成新字符串,并将其传递给flash并插入数据库。由于我们使用的是多人游戏平台,所以需要Java。不过,你的回答对我很有帮助。如果我第一次用php而不是java生成加密字符串,flash将绑定到网站。谢谢你的帮助。