Я добавляю в API некоторые возможности, позволяющие третьим сторонам хранить пользовательские данные. Я знаю, что некоторые пользователи могут уже base64 кодировать свои идентификаторы пользователей перед отправкой через API, другие не могут.
Я проверил двойное кодирование (кодирование base64 уже закодированной в base64 строки), и оно НЕ СМОТРЕЛО вызывать никаких проблем.
Насколько я понимаю, невозможно проверить, закодирована ли строка в base64.
Есть ли здесь что-то, на что я должен обратить внимание? Есть ли другой способ, которым я должен делать это, или это безопасно?
Кроме того, я очищаю данные, как это.
$eid=preg_replace("/[^a-zA-Z0-9\/=+]/", "",base64_encode(@$_GET['eid']));
, который следует безопасно хранить в базе данных, поскольку он удаляет все подозрительные символы после кодирования строки. Но мне нужно вернуть некодированную строку через API.
Так что в какой-то момент мне нужно будет сделать
echo base64_decode($eid);
И мне кажется, что это может дать хакеру возможность запустить вредоносный код через мой сервер.
Это правильно?