Tóm tắt
Đúng vậy, Postman lưu trữ các khóa API và các thông tin đăng nhập khác khi bạn lưu chúng trong các biến môi trường có bật đồng bộ hóa đám mây, đây là cài đặt mặc định. Điều này không có nghĩa là Postman đang lạm dụng các khóa của bạn, nhưng nó có nghĩa là thông tin đăng nhập của bạn tồn tại trên máy chủ của bên thứ ba. Hiểu điều này giúp bạn quyết định liệu thiết lập mặc định của Postman có phù hợp với các yêu cầu bảo mật của bạn hay không, và khi nào một công cụ ưu tiên cục bộ như Apidog là lựa chọn tốt hơn.
Giới thiệu
Câu hỏi “Postman có lưu trữ khóa API của tôi không?” thường xuyên xuất hiện trong các cộng đồng nhà phát triển. Tìm kiếm trên Reddit r/webdev hoặc r/programming, và bạn sẽ tìm thấy các chủ đề từ các nhà phát triển hỏi cùng một điều, thường được thúc đẩy bởi kết quả kiểm tra bảo mật hoặc cuộc trò chuyện với đội ngũ bảo mật của họ.
Mối quan tâm là chính đáng. Khóa API về cơ bản là mật khẩu cho các dịch vụ của bạn. Một khóa API bị rò rỉ cho một bộ xử lý thanh toán có thể dẫn đến các khoản phí gian lận. Một khóa nhà cung cấp đám mây bị rò rỉ có thể dẫn đến việc tạo tài nguyên trái phép, trích xuất dữ liệu hoặc một hóa đơn lên đến hàng chục nghìn đô la. Các nhà phát triển lưu trữ các khóa này trong công cụ phát triển của họ đang gửi gắm niềm tin vào công cụ đó.
Hầu hết các nhà phát triển đều biết không nên đưa khóa API vào các kho lưu trữ GitHub công khai. Mức độ nhận thức về các công cụ máy khách API thấp hơn. Postman có hơn 30 triệu người dùng, điều đó có nghĩa là một số lượng lớn các nhà phát triển đang lưu trữ thông tin đăng nhập trong một công cụ mà không hiểu đầy đủ về nơi các thông tin đăng nhập đó sẽ đến.
Bài viết này đưa ra câu trả lời trực tiếp, kỹ thuật cho câu hỏi về lưu trữ khóa API và giải thích những gì bạn có thể làm về điều đó.
Câu trả lời trực tiếp: có, với ngữ cảnh quan trọng
Postman lưu trữ các khóa API trong các trường hợp sau:
Khi bạn sử dụng biến môi trường. Hệ thống môi trường của Postman là cách tiêu chuẩn để lưu trữ thông tin đăng nhập để sử dụng trong các yêu cầu. Nếu bạn tạo một biến môi trường tên là API_KEY với giá trị là sk-abc123..., giá trị đó sẽ được đồng bộ hóa với các máy chủ đám mây của Postman khi tính năng đồng bộ hóa đám mây đang hoạt động. Đây là hành vi mặc định.
Khi bạn sử dụng biến bộ sưu tập. Các biến được lưu trữ ở cấp độ bộ sưu tập được đồng bộ hóa theo cùng một cách.
Khi bạn sử dụng biến toàn cục. Các biến toàn cục đồng bộ hóa với tài khoản Postman của bạn.
Khi thông tin đăng nhập xuất hiện trong phần thân yêu cầu hoặc tiêu đề. Nếu bạn mã hóa cứng một thông tin đăng nhập trong tiêu đề yêu cầu (như Authorization: Bearer sk-abc123...) và lưu bộ sưu tập, giá trị đó sẽ được đồng bộ hóa.
Những gì không đồng bộ hóa theo mặc định: Các giá trị được lưu trữ trong Postman Vault. Vault là một kho lưu trữ thông tin đăng nhập cục bộ mà rõ ràng không đồng bộ hóa với đám mây của Postman. Nó yêu cầu lưu trữ thông tin đăng nhập thủ công ở đó thay vì trong các biến môi trường.
“Đồng bộ hóa đám mây” thực sự có nghĩa là gì
Đồng bộ hóa đám mây trong Postman có nghĩa là một bản sao dữ liệu không gian làm việc của bạn được duy trì liên tục trên các máy chủ của Postman. Điều này xảy ra tự động trong nền. Bạn không cần phải nhấp vào “lưu” hoặc “đồng bộ hóa”. Khi bạn làm việc, các thay đổi sẽ được truyền đến đám mây.
Mục đích là để cộng tác và lưu trữ vĩnh viễn. Nếu máy tính xách tay của bạn bị hỏng, công việc của bạn không bị mất vì nó đã nằm trên đám mây của Postman. Nếu bạn chuyển đổi máy, các bộ sưu tập và môi trường của bạn sẽ theo bạn vì chúng đồng bộ hóa với tài khoản của bạn.
Hàm ý bảo mật là các khóa API của bạn, mà bạn có thể nghĩ rằng chúng chỉ tồn tại trong ứng dụng trên máy tính xách tay của mình, thực ra đang tồn tại ở cả hai nơi: máy tính xách tay của bạn và đám mây của Postman.
Postman mã hóa dữ liệu này. Sơ đồ cụ thể là mã hóa AES-256 cho dữ liệu tĩnh và TLS cho dữ liệu đang truyền. Đây là mã hóa tiêu chuẩn và hợp lý. Các khóa không nằm ở dạng văn bản thuần túy trên cơ sở dữ liệu Postman nào đó.
Nhưng mã hóa không có nghĩa là không thể truy cập. Postman có thể truy cập dữ liệu để cung cấp dịch vụ. Nếu tài khoản Postman của bạn bị xâm phạm (thông qua lừa đảo, tấn công bằng thông tin đăng nhập bị rò rỉ, hoặc vi phạm dữ liệu tại Postman), các khóa API đã lưu của bạn có khả năng bị truy cập bởi bất kỳ ai đã giành được quyền truy cập.
Chính sách quyền riêng tư của Postman nói gì về thông tin đăng nhập của bạn
Chính sách quyền riêng tư của Postman mô tả họ là một bộ xử lý dữ liệu, không phải là một bộ điều khiển dữ liệu, đối với nội dung không gian làm việc của bạn. Họ xử lý dữ liệu của bạn để cung cấp dịch vụ. Họ không bán nội dung không gian làm việc của bạn cho bên thứ ba.
Các điểm chính từ tài liệu xử lý dữ liệu của họ:
Giới hạn mục đích. Postman tuyên bố họ sử dụng nội dung không gian làm việc để cung cấp và cải thiện dịch vụ, không phải để tiếp thị hoặc bán lại.
Bộ xử lý phụ. Postman sử dụng các dịch vụ của bên thứ ba cho cơ sở hạ tầng, hỗ trợ và phân tích. Các bộ xử lý phụ này có thể xử lý dữ liệu của bạn như một phần của việc cung cấp dịch vụ. Postman công bố danh sách các bộ xử lý phụ trong tài liệu của họ.
Yêu cầu của chính phủ. Là một công ty của Hoa Kỳ, Postman phải tuân thủ các yêu cầu của cơ quan thực thi pháp luật Hoa Kỳ bao gồm các lá thư an ninh quốc gia. Dữ liệu được lưu trữ trên các máy chủ Hoa Kỳ có thể bị buộc phải cung cấp thông qua quy trình pháp lý.
Thông báo vi phạm. Các điều khoản của Postman bao gồm các điều khoản thông báo vi phạm bảo mật. Nếu dữ liệu của bạn bị liên quan đến một vi phạm, Postman có nghĩa vụ hợp đồng phải thông báo cho bạn.
Xóa dữ liệu. Khi bạn xóa tài khoản của mình, Postman sẽ xóa dữ liệu của bạn. Lịch trình lưu giữ bản sao lưu khác nhau.
Đây là một chính sách bình thường đối với một công ty SaaS B2B. Nó không cho thấy ý định xấu. Câu hỏi đặt ra là liệu chính sách bảo mật của tổ chức bạn có cho phép lưu trữ thông tin đăng nhập API với một dịch vụ đám mây của bên thứ ba hay không, và liệu bạn đã xem xét chính sách đó so với những gì Postman thực sự làm hay chưa.
Khía cạnh khả năng hiển thị không gian làm việc
Ngoài đồng bộ hóa đám mây, còn có một khía cạnh thứ hai đối với rủi ro khóa API của Postman: khả năng hiển thị không gian làm việc.
Các không gian làm việc của Postman có thể là Công khai, Nhóm hoặc Riêng tư. Các không gian làm việc công khai có thể truy cập được cho bất kỳ ai mà không cần xác thực. Chúng có thể tìm kiếm được trên mạng API công khai của Postman.
Vào năm 2023, các nhà nghiên cứu của CloudSEK đã tìm thấy hơn 30.000 không gian làm việc Postman công khai chứa các khóa API, token và các thông tin đăng nhập thực tế. Các công ty bao gồm Razorpay và New Relic đã có thông tin đăng nhập nhạy cảm trong các không gian làm việc công khai. Sự phơi bày này không phải do vi phạm. Đó là do các nhà phát triển đặt không gian làm việc thành công khai mà không nhận ra rằng cùng một không gian làm việc chứa thông tin đăng nhập thực tế trong các biến môi trường.
Đây là rủi ro thứ hai, riêng biệt. Ngay cả khi bạn tin tưởng bảo mật đám mây của Postman, việc cấu hình sai khả năng hiển thị không gian làm việc có thể làm lộ thông tin đăng nhập của bạn cho toàn bộ internet.
Ai có nguy cơ cao nhất
Không phải mọi nhà phát triển đều đối mặt với mức độ rủi ro như nhau từ việc xử lý thông tin đăng nhập của Postman. Rủi ro cao hơn khi:
Bạn lưu trữ thông tin đăng nhập sản xuất trong Postman. Kiểm thử với API sản xuất bằng khóa sản xuất có nghĩa là thông tin đăng nhập sản xuất nằm trong đám mây của Postman. Điều này phổ biến và thực sự rủi ro.
Không gian làm việc nhóm của bạn có quyền truy cập rộng rãi. Nếu mọi người trong một công ty 50 người đều ở trong cùng một nhóm Postman với quyền truy cập vào tất cả các không gian làm việc, một tài khoản bị xâm phạm duy nhất sẽ làm lộ tất cả thông tin đăng nhập.
Bạn làm việc trong một ngành được quản lý. Các tổ chức y tế, tài chính, chính phủ và quốc phòng thường có các quy tắc rõ ràng về nơi có thể lưu trữ một số dữ liệu nhất định. Việc lưu trữ các khóa API cấp quyền truy cập vào các hệ thống chứa PHI (Thông tin sức khỏe được bảo vệ) hoặc dữ liệu tài chính trong đám mây của bên thứ ba có thể vi phạm các quy tắc đó.
Các khóa API của bạn có đặc quyền cao. Một khóa chỉ đọc cho một API công khai có rủi ro thấp. Một khóa quản trị cho cơ sở hạ tầng đám mây hoặc bộ xử lý thanh toán của bạn có rủi ro cao. Hậu quả của việc bị lộ sẽ tăng theo mức độ đặc quyền của khóa.
Bạn là nhà thầu hoặc nhà tư vấn. Việc lưu trữ thông tin đăng nhập API của khách hàng trong tài khoản Postman cá nhân của bạn có nghĩa là thông tin đăng nhập của khách hàng tồn tại trên máy chủ của bên thứ ba được liên kết với tài khoản cá nhân của bạn. Nếu tài khoản đó bị xâm phạm, bảo mật của khách hàng sẽ gặp rủi ro.
Postman Vault thay đổi cục diện như thế nào
Postman Vault, được giới thiệu để giải quyết những lo ngại này, lưu trữ các giá trị thông tin đăng nhập cục bộ trên máy của bạn. Các giá trị trong Vault không đồng bộ hóa với đám mây của Postman. Bạn tham chiếu chúng trong các yêu cầu bằng cách sử dụng cú pháp {{vault:variable_name}}.
Đây là một cải tiến bảo mật đáng kể. Các khóa API được lưu trữ trong Vault không nằm trên máy chủ của Postman.
Những hạn chế: nó đòi hỏi một sự thay đổi hành vi có chủ ý. Các nhà phát triển đã có nhiều năm thói quen sử dụng biến môi trường. Vault yêu cầu mỗi thành viên trong nhóm phải thiết lập vault cục bộ của riêng họ, điều này có nghĩa là thông tin đăng nhập không được chia sẻ thông qua các tính năng nhóm của Postman. Bạn cần một cơ chế chia sẻ bí mật riêng biệt để giới thiệu thành viên nhóm mới.
Vault cũng không giải quyết được các thông tin đăng nhập xuất hiện trực tiếp trong tiêu đề hoặc nội dung yêu cầu, hoặc các thông tin đăng nhập trong biến bộ sưu tập và biến toàn cục.
Các công cụ ưu tiên cục bộ và mô hình thay thế
Sự khác biệt cơ bản với các công cụ ưu tiên cục bộ là mặc định. Với Postman, đồng bộ hóa đám mây được bật trừ khi bạn tắt nó (và ngay cả khi đó, nó vẫn yêu cầu Vault cho các thông tin đăng nhập cụ thể). Với Apidog, dữ liệu vẫn ở cục bộ trừ khi bạn bật đồng bộ hóa.
Các biến môi trường của Apidog được lưu trữ trong các cơ sở dữ liệu SQLite cục bộ trên máy của bạn. Chúng không đồng bộ hóa ở bất cứ đâu nếu không có hành động rõ ràng của bạn. Nếu bạn không bao giờ bật đồng bộ hóa nhóm, các khóa API của bạn sẽ không bao giờ rời khỏi máy của bạn.
Đối với các nhà phát triển cần công cụ xử lý bí mật an toàn mà không cần cấu hình gì, đây là một điểm khác biệt đáng kể. Bạn không cần phải biết về Vault, cấu hình nó và đào tạo toàn bộ nhóm của mình để sử dụng nó. Hành vi an toàn là hành vi mặc định.
Bruno đi xa hơn: nó lưu trữ mọi thứ trong các tệp trên hệ thống tệp của bạn. Hoàn toàn không có tùy chọn đám mây kiểu Apidog. Nếu chỉ cục bộ là một yêu cầu cứng rắn, Bruno loại bỏ hoàn toàn câu hỏi.
Các khuyến nghị thực tế
Kiểm tra những gì bạn đã lưu trữ ngay bây giờ. Mở môi trường Postman của bạn và xem xét từng biến. Tìm kiếm các khóa API, token, mật khẩu và bí mật. Biết những gì đang có trên đám mây của Postman.
Chuyển sang Postman Vault cho thông tin đăng nhập. Đối với bất kỳ thông tin đăng nhập nào cần giữ trong Postman, hãy di chuyển chúng sang Vault. Cập nhật tài liệu và quy trình giới thiệu của nhóm bạn.
Sử dụng các khóa có phạm vi, đặc quyền hạn chế cho việc kiểm thử. Tạo các khóa API đặc biệt cho việc phát triển và kiểm thử với các quyền tối thiểu cần thiết. Nếu một khóa kiểm thử bị rò rỉ, tác động sẽ được giới hạn. Không bao giờ sử dụng khóa quản trị hoặc sản xuất trong các công cụ phát triển.
Xem xét khả năng hiển thị không gian làm việc. Đảm bảo không có không gian làm việc nào chứa thông tin đăng nhập được đặt ở chế độ Công khai. Mặc định là Riêng tư cho tất cả các không gian làm việc.
Cân nhắc mô hình mối đe dọa của bạn. Đối với các dự án cá nhân và API không nhạy cảm, thiết lập hiện tại của Postman có thể chấp nhận được. Đối với thông tin đăng nhập sản xuất, dữ liệu được quản lý hoặc công việc của khách hàng, các bước bổ sung để đạt được bảo mật với Postman có thể dễ dàng tránh được bằng cách sử dụng một công cụ ưu tiên cục bộ.
Câu hỏi thường gặp
Postman có bán khóa API hoặc dữ liệu không gian làm việc của tôi không?Không. Chính sách quyền riêng tư của Postman nêu rõ rằng họ không bán nội dung không gian làm việc của người dùng. Họ sử dụng nó để cung cấp và cải thiện dịch vụ.
Nếu tài khoản Postman của tôi bị xâm phạm, kẻ tấn công có thể lấy được khóa API của tôi không?Có, nếu các khóa đó được lưu trữ trong các biến môi trường được đồng bộ hóa với đám mây. Đó là lý do tại sao việc sử dụng Postman Vault cho thông tin đăng nhập và bật xác thực đa yếu tố trên tài khoản Postman của bạn đều quan trọng.
Postman có hỗ trợ xác thực đa yếu tố không?Có. Postman hỗ trợ MFA thông qua các ứng dụng xác thực. Bật MFA giảm đáng kể nguy cơ tài khoản bị xâm phạm.
Các khóa API trong Postman Vault có an toàn không?Các khóa được lưu trữ trong Postman Vault được lưu trữ cục bộ và không đồng bộ hóa với đám mây của Postman. Chúng an toàn như máy cục bộ của bạn. Nếu máy của bạn bị xâm phạm, nội dung Vault có thể truy cập được. Nhưng chúng không thể truy cập được bởi Postman hoặc bởi một người nào đó xâm phạm tài khoản Postman của bạn mà không xâm phạm máy của bạn.
Tôi nên sử dụng gì nếu tôi không thể lưu trữ khóa API trong bất kỳ công cụ đám mây nào?Bruno là tùy chọn hạn chế nhất, hoàn toàn không có thành phần đám mây. Apidog ở chế độ cục bộ lưu trữ mọi thứ trên thiết bị. Đối với môi trường nhóm không có công cụ đám mây nào cả, Hoppscotch tự lưu trữ hoặc Apidog tự lưu trữ cung cấp cho bạn khả năng cộng tác mà không phụ thuộc vào đám mây của bên thứ ba.
Làm cách nào để xóa khóa API của tôi khỏi đám mây của Postman?Đi tới môi trường Postman của bạn, xóa các biến chứa thông tin đăng nhập và thay thế chúng bằng các tham chiếu đến Vault. Nếu bạn muốn xóa dữ liệu đồng bộ hóa lịch sử, bạn cần xóa không gian làm việc và bất kỳ dữ liệu liên quan nào khỏi cài đặt tài khoản Postman của bạn.
Câu trả lời cho câu hỏi “Postman có thu thập khóa API của tôi không” là có, theo cài đặt mặc định và các mô hình sử dụng phổ biến. Điều đó không làm cho Postman trở thành một sản phẩm tồi. Điều đó có nghĩa là bạn cần hiểu mô hình dữ liệu trước khi lưu trữ thông tin đăng nhập nhạy cảm, và sử dụng Vault hoặc một công cụ thay thế khi các yêu cầu bảo mật của bạn đòi hỏi điều đó.
