我正在向 api 添加一些功能,以允许第三方存储用户数据。我知道有些用户在通过 api 提交之前可能已经对他们的用户 ID 进行了 base64 编码,而其他用户可能不会。
我已经对双重编码进行了一些检查(对已经 base64 编码的字符串进行 base64 编码),它似乎没有引起任何问题。
据我了解,无法检查字符串是否经过 base64 编码。这里有什么我应该注意的吗?还有其他方法我应该这样做,还是安全?
另外,我正在像这样清理数据。
$eid=preg_replace("/[^a-zA-Z0-9\/=+]/", "",base64_encode(@$_GET['eid']));
这应该可以安全地存储在数据库中,因为它会在字符串编码后去除任何可疑字符。但我需要通过 API 返回非编码字符串。
所以在某些时候我需要做
回声 base64_decode($eid);在我看来,这可能是黑客通过我的服务器运行恶意代码的机会。那正确吗?