Reddit Python Bot, почему небезопасно хранить учетные данные для входа в скрипт?

Я следую этому руководству: http://pythonforengineers.com/build-a-reddit-bot-part-1/, а в подразделе Создать приложение Reddit указано, что у меня не должно быть никаких учетных данных непосредственно в скрипте, потому что «другие могут их увидеть. '.

Теперь вам нужно обновить файл praw ini, чтобы запомнить эти настройки. В противном случае вам придется поместить их в свой сценарий, и это опасно (так как другие могут их увидеть).

Загружается ли мой скрипт на Reddit, где его могут прочитать другие люди? Если нет, то почему это небезопасно?


person CerealPython    schedule 23.08.2018    source источник
comment
Код обычно находится в некотором роде контроля версий. Контроль версий хранит историю навсегда (по задумке), и обычно не там, где вы хотите, чтобы ваш пароль был. Дополнительные сведения о ловушках см. В этом связанном вопросе, но краткий ответ - нет: никто увидит ваш исходный код, если вы запускаете его только на своем локальном компьютере и никогда не размещаете свой код в Интернете.   -  person Adam Smith    schedule 23.08.2018


Ответы (1)


Если вы разрабатываете этого бота только в качестве доказательства концепции и всегда запускаете его с компьютера, на котором вы его разрабатываете, риск утечки ваших учетных данных невелик. Однако большая часть кода не живет своей жизнью в виде одной копии только в одной системе. Подавляющее большинство современных передовых методов разработки программного обеспечения основаны на предположении, что разные компьютеры будут разрабатывать код, хранить версии кода и фактически запускать код.

Если вы жестко закодируете свои учетные данные в своем сценарии входа и запускаете его только со своего компьютера, это не будет проблемой. Что делать, если вам нужна помощь в отладке бота? Что, если вы действительно гордитесь этим и хотите этим похвастаться? Что делать, если вы хотите сохранить резервную копию в другой системе? Что, если вы не хотите, чтобы он работал на том же компьютере, на котором вы его разработали? Внезапно код, содержащий ваши учетные данные, становится общим для нескольких компьютеров. Чем на большем количестве систем будет установлен ваш код, тем легче будет получить к ним доступ. Вот почему при разработке программного обеспечения рекомендуется не хранить секреты жесткого кода, такие как учетные данные для входа в систему, в сценариях или коде.

В случае с учебником, которому вы следуете, они инструктируют вас запускать код на виртуальной машине и использовать git для управления версиями. Как только вы сохраните свои учетные данные в git, они всегда будут частью истории git этих репозиториев. Если вы когда-либо размещаете свои репозитории в удаленной системе, такой как GitHub, ваши учетные данные будут храниться в системе, находящейся вне вашего контроля.

person sphennings    schedule 23.08.2018