3

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

1 回答 1

2

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

当客户端请求 Flash 文件时,您的服务器端 PHP 会构建以下字符串:

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

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

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

于 2012-04-04T10:01:12.783 回答