Как скрыть / защитить данные паролей в php?

Я создаю веб-сайт, на котором я пытаюсь создать форму, которая будет отправлять пользовательский ввод в электронную таблицу google в моем документе / диске Google … Я нашел проект Github, который позволяет людям кодировать php … Он включает в себя 2 других php-файла, которые необходимы для скрипта. Код выглядит следующим образом:

Мой вопрос в том, как я могу скрыть свой пароль из этого скрипта под $ u = / $ p = ?? Любой, кто просматривает код, может видеть мой пароль .. как я могу это предотвратить?

Ссылка на источник скрипта: http://www.farinspace.com/saving-form-data-to-google-spreadsheets/

<?php // Zend library include path set_include_path(get_include_path() . PATH_SEPARATOR . "$_SERVER[DOCUMENT_ROOT]/ZendGdata-1.8.1/library"); include_once("Google_Spreadsheet.php"); $u = "username@gmail.com"; $p = "password"; $ss = new Google_Spreadsheet($u,$p); $ss->useSpreadsheet("My Spreadsheet"); $ss->useWorksheet("wks2"); // important: // adding a leading alpha char prevents errors, there are issues // when trying to lookup an identifier in a column where the // value starts with both alpha and numeric characters, using a // leading alpha character causes the column and its values to be // seen as a strictly a strings/text $id = "z" . md5(microtime(true)); $row = array ( "id" => $id // used for later lookups , "name" => "John Doe" , "email" => "john@example.com" , "comments" => "Hello world" ); if ($ss->addRow($row)) echo "Form data successfully stored"; else echo "Error, unable to store data"; $row = array ( "name" => "John Q Doe" ); if ($ss->updateRow($row,"id=".$id)) echo "Form data successfully updated"; else echo "Error, unable to update spreadsheet data"; ?> 

    Вы можете попытаться скрыть, если от глаз вглядываться, используя приведенный ниже код. Это было бы доступно, если бы вы попытались, но, по крайней мере, это далеко от открытого текстового представления. Все, что он делает, это добавить символы в текст, а затем вычесть их перед использованием пароля.

    Запустите этот скрипт, используя оригинальный пароль

     <?php $password = "test"; echo "Original Password In Plain Text = $password\n"; $len=strlen($password); $NewPassword = ""; for( $i = 0; $i <= $len-1; $i++ ) { $charcode = ord(substr( $password, $i, 1 )); $NewChar = $charcode+5; $NewLetter = chr($NewChar); $NewPassword = $NewPassword . $NewLetter; } echo "Modified Password to Use in Script = $NewPassword\n"; $OrigPassword = ""; for( $i = 0; $i <= $len-1; $i++ ) { $charcode = ord(substr( $NewPassword, $i, 1 )); $OrigChar = $charcode-5; $OrigLetter = chr($OrigChar); $OrigPassword = $OrigPassword . $OrigLetter; } echo "Convert the Modified back to the Original = $OrigPassword\n"; ?> 

    Лучший способ скрыть пароль – сохранить его во внешнем файле, а затем включить его в свой php-скрипт. Ваш файл с этим паролем, скажем, « config.php » должен быть выше DOCUMENT_ROOT чтобы сделать его неприемлемым через браузер. Это обычное aproach и, например, вы можете увидеть его в структуре каталога Zend Framework, где для пользователя отображается только «общедоступный» каталог. Правильный CHMOD также должен быть установлен в этот файл.

    По этой ссылке у вас есть структура каталогов ZF, где вы можете проверить расположение файлов конфигурации.

    Этот вопрос задан и много раз ответил здесь (но не специально для документов Google). Короткий ответ: вы ничего не можете сделать.

    Более длительный ответ заключается в том, что вы можете смягчить вероятность того, что учетные данные будут скомпрометированы:

    • использование учетных данных, предоставленных пользователю, а не сохраненных в коде
    • используя токены, предоставленные пользователем в качестве средства дешифрования учетных данных, хранящихся в вашем коде (но это очень сложно с большим количеством пользователей)
    • сохранение учетных данных в файле include, хранящемся вне корня документа