0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Cải thiện An ninh trong Dự án Google Apps Script

Đăng vào 1 ngày trước

• 4 phút đọc

Cải thiện An ninh trong Dự án Google Apps Script

Khi xây dựng các dự án Google Apps Script, đặc biệt là các tiện ích bổ sung, việc giành được lòng tin của người dùng cũng quan trọng như chức năng mà bạn cung cấp. Một phần quan trọng trong việc xây dựng lòng tin đó là yêu cầu chỉ những quyền mà script của bạn thực sự cần thiết. Tại đây, chú thích @OnlyCurrentDoc xuất hiện, một tính năng đơn giản nhưng mạnh mẽ để cải thiện an ninh cho các script của bạn.

Vấn đề với các Phạm vi Rộng

Mặc định, Apps Script làm rất tốt việc xác định các phạm vi OAuth cần thiết bằng cách quét mã của bạn (Phạm vi ủy quyền). Tuy nhiên, đôi khi nó có thể quá cẩn thận, yêu cầu các phạm vi rộng hơn mà cấp quyền truy cập vào tất cả các tệp của người dùng thuộc một loại nhất định (ví dụ: tất cả các Google Sheets của họ).

Đối với người dùng, việc thấy một thông báo yêu cầu quyền truy cập để "Xem và quản lý tất cả các bảng tính Google của bạn" có thể gây lo lắng, đặc biệt nếu tiện ích bổ sung của bạn chỉ nhằm làm việc trên bảng tính mà họ đang mở. Đây chính là lý do bạn có thể, và nên, cụ thể hơn.

Giới thiệu về @OnlyCurrentDoc

Chú thích @OnlyCurrentDoc là một phần của JSDoc mà bạn thêm vào phần nhận xét cấp tệp trong script của mình. Nó yêu cầu Apps Script giới hạn quyền truy cập của nó chỉ vào tài liệu, bảng tính, hoặc biểu mẫu mà script đang được liên kết (Ủy quyền cho Dịch vụ Google).

Tài liệu chính thức giải thích như sau:

Nếu bạn đang xây dựng một tiện ích bổ sung hoặc một script khác sử dụng dịch vụ Bảng tính, dịch vụ Tài liệu, dịch vụ Trình chiếu, hoặc dịch vụ Biểu mẫu, bạn có thể buộc hộp thoại ủy quyền chỉ yêu cầu quyền truy cập vào các tệp mà tiện ích bổ sung hoặc script được sử dụng, thay vì tất cả các bảng tính, tài liệu, hoặc biểu mẫu của người dùng. Để thực hiện điều này, hãy bao gồm chú thích JsDoc sau trong phần nhận xét cấp tệp:

Copy
/**
 * @OnlyCurrentDoc
 */

Bằng cách thêm chú thích đơn giản này, bạn đã thay đổi phạm vi ủy quyền từ một phạm vi rộng sang một phạm vi cụ thể và thân thiện hơn với người dùng.

Từ Rộng đến Cụ Thể: Phạm vi currentonly

Khi bạn sử dụng @OnlyCurrentDoc, phạm vi OAuth mà script của bạn yêu cầu sẽ thay đổi. Ví dụ:

  • https://www.googleapis.com/auth/spreadsheets trở thành https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/documents trở thành https://www.googleapis.com/auth/documents.currentonly
  • https://www.googleapis.com/auth/presentations trở thành https://www.googleapis.com/auth/presentations.currentonly

Điều này cho người dùng biết rằng script của bạn chỉ có quyền truy cập vào tệp hiện tại, một thông điệp rất đáng an tâm.

Thực hành Tốt nhất: Các Phạm vi Rõ ràng trong appsscript.json

Mặc dù @OnlyCurrentDoc là một bước khởi đầu tuyệt vời, thực hành tốt nhất cho các ứng dụng được xuất bản là xác định rõ ràng các phạm vi của bạn trong tệp khai báo appsscript.json (Phạm vi ủy quyền). Điều này giúp bạn kiểm soát hoàn toàn và làm cho quyền truy cập của script trở nên rõ ràng.

Dưới đây là một ví dụ về cách bạn sẽ khai báo phạm vi currentonly trong tệp khai báo của bạn:

Copy
{
  "timeZone": "America/New_York",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/spreadsheets.currentonly",
    "https://www.googleapis.com/auth/script.container.ui"
  ]
}

Ngoại lệ Hiếm gặp: @NotOnlyCurrentDoc

Trong một số trường hợp hiếm gặp, bạn có thể có một script bao gồm một thư viện sử dụng @OnlyCurrentDoc, nhưng script chính của bạn cần quyền truy cập rộng hơn. Trong tình huống này, bạn có thể sử dụng chú thích @NotOnlyCurrentDoc để ghi đè lên sự hạn chế của thư viện (Ủy quyền cho Dịch vụ Google).

Như tài liệu đã nêu:

Một chú thích đối kháng, @NotOnlyCurrentDoc, có sẵn nếu script của bạn bao gồm một thư viện tuyên bố @OnlyCurrentDoc, nhưng script chính thực sự cần quyền truy cập vào nhiều hơn tệp hiện tại.

Lời Kết

Việc sử dụng @OnlyCurrentDoc và các phạm vi tương ứng ...currentonly là một cách đơn giản nhưng hiệu quả để cải thiện an ninh cho các dự án Apps Script của bạn và xây dựng lòng tin với người dùng. Đây là một thực hành cơ bản cho bất kỳ script nào hoạt động trong một tài liệu duy nhất, và đặc biệt quan trọng đối với bất kỳ tiện ích bổ sung nào mà bạn dự định xuất bản.


Tài nguyên Thêm

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào