Как лучше всего управлять секретами API в скрипте Google Apps?

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

Есть ли риск размещения секретов непосредственно в скрипте, если я публикую скрипт как API, но не делюсь доступом к местоположению Google Диска, содержащему скрипт Google Apps?

Например, как насчет использования веб-приложений в вашей ситуации? Я думаю, что вы можете использовать секретные ключи в скрипте веб-приложений. Примерный поток выглядит следующим образом. 1. Создайте сценарий с помощью скрипта Google Apps, включая секретные ключи. 2. Разверните его как веб-приложение. 3. Вы вызываете веб-приложения как API и извлекаете значения, запустив сценарий. В этом случае идентификатор, включающий конечную точку веб-приложений, не является идентификатором сценария, а также не требуется предоставлять общий доступ к сценарию. developers.google.com/apps-script/guides/web Если это было не то, что вам нужно, извините.

Tanaike 07.11.2018 23:44

Также сохраните его в Свойства пользователя

TheMaster 08.11.2018 02:53

@OP - Удалось ли вам найти лучшее решение, чем хранить его в скрипте?

Anshu Prateek 30.06.2019 10:54

@Anshu Prateek, к сожалению, единственная альтернатива - свойства пользователя. это не лучший солитон.

Master_Yoda 30.06.2019 15:10

@Master_Yoda Почему свойства пользователя - не лучшее решение?

IMTheNachoMan 11.12.2019 04:48

@IMTheNachoMan Одна причина: если вы поделитесь скриптом, все смогут увидеть свойства пользователя.

Master_Yoda 11.12.2019 16:31

@Master_Yoda свойства UserProperties различаются для каждого пользователя. Если вы хотите иметь возможность поделиться сценарием, но все же держать его в секрете, вам может потребоваться опубликовать надстройку, которая позволит вам сохранить свой код в секрете, позволяя процессу быть открытым.

Rob 31.12.2019 01:16

@Master_Yoda Нет, не пойдет. Свойства пользователя являются частными для пользователя, устанавливающего свойство.

TheMaster 21.03.2020 15:55

@ Роб - Полезно знать. Тем не менее, к сожалению, это не помогает, потому что другие люди должны иметь возможность вызывать скрипт, когда я делюсь.

Master_Yoda 04.09.2020 04:11

Поскольку это то, что делает Google, UserProperties устарели. Вздох.

dannysauer 17.02.2021 21:29
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
Один-единственный вредоносный запрос может нанести ущерб вашему бизнесу. Уязвимости вашего кода могут привести к:
18
10
4 082
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет правильного или неправильного ответа. Следует учитывать множество факторов:

  • Если это для / в G-Suite, то ваши администраторы G-Suite будут иметь (или могут получить) доступ ко всему. Это может быть, а может и не быть проблемой.
  • Если вы поместите данные на лист, любой, у кого есть доступ для чтения к листу, сможет увидеть данные.
  • Вы можете использовать PropertiesService, но тогда люди смогут получить доступ, как описано в документации. Свойства пользователя - это один из способов, но они могут работать не во всех случаях использования - например, если другой пользователь выполняет код. Вы можете использовать устанавливаемые триггеры, если это возможно для вашего варианта использования.
  • Если людям необходимо иметь возможность выполнять вызов API с вашим ключом, вы можете написать прокси-веб-приложение, которое они могут вызывать, но не видеть источник.

Другие вопросы по теме