Я пытался использовать SDK Paypal PHP, и я заметил предупреждение, в котором говорится, что я должен зашифровать имя пользователя и пароль для использования в производственных средах. Я согласен с этим утверждением, но мне интересно, как я должен это делать. В настоящее время я понятия не имею.
Вот что говорит предупреждение, только для записи:
Не вставляйте учетные данные открытого текста в код приложения. Делать это небезопасно и против лучших практик. Ваши учетные данные API должны быть безопасно обработаны. Пожалуйста, подумайте о шифровании их для использования в любой производственной среде и убедитесь, что только уполномоченные лица могут просматривать или изменять их.
Заранее спасибо.
Сначала установите ключ шифрования:
$key = 'yourpasswordhere'; $string = ' confidential information here '; // note the spaces
Зашифруйте его в записи БД или из другого файла и только сохраните зашифрованную строку в самом файле:
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key)))); var_dump($encrypted); // "ey7zu5zBqJB0rGtIn5UB1xG03efyCp+KSNR4/GAv14w="
Расшифруйте его позже:
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0"); var_dump($decrypted); // " confidential information here "
Как правило, вы можете хранить учетные данные, подобные этому, в файле вне корня веб-сайта. Это ограничивает риск, но не полностью избавляется от него.
Если они могут увидеть ваш код (или, что еще хуже, отредактировать его), тогда они могут получить ваши учетные данные в любом случае. Шифрование означает, что вам нужен ключ шифрования где-то, который будет так же виден, как и имя пользователя / пароль.