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


Check ip when getting request from flash file in php

我有一个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'];
    }

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

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

user_id(if any):client_ip:clinet_forwarded_ip(if any):some_random_string

然后您需要使用像AES256这样的对称安全算法来加密这个字符串。因此,这将是您的闪存访问令牌。然后,您通过flashvars将此令牌传递给flash,在每次请求时,flash都需要将此令牌发回以验证其身份。

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