Опасность двойного кодирования Base64 и безопасность Base64 - PullRequest
1 голос
/ 22 сентября 2009

Я добавляю в API некоторые возможности, позволяющие третьим сторонам хранить пользовательские данные. Я знаю, что некоторые пользователи могут уже base64 кодировать свои идентификаторы пользователей перед отправкой через API, другие не могут.

Я проверил двойное кодирование (кодирование base64 уже закодированной в base64 строки), и оно НЕ СМОТРЕЛО вызывать никаких проблем.

Насколько я понимаю, невозможно проверить, закодирована ли строка в base64. Есть ли здесь что-то, на что я должен обратить внимание? Есть ли другой способ, которым я должен делать это, или это безопасно?

Кроме того, я очищаю данные, как это.

$eid=preg_replace("/[^a-zA-Z0-9\/=+]/", "",base64_encode(@$_GET['eid']));

, который следует безопасно хранить в базе данных, поскольку он удаляет все подозрительные символы после кодирования строки. Но мне нужно вернуть некодированную строку через API.

Так что в какой-то момент мне нужно будет сделать

echo base64_decode($eid);
И мне кажется, что это может дать хакеру возможность запустить вредоносный код через мой сервер. Это правильно?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...