Web Tinhte.vn bị sập, truy cập chập chờn lúc được lúc không

(2022 - P.V DBlog) Từ sáng nay, 10/07, website của diễn đàn công nghệ Tinhte.vn thường xuyên gặp tình trạng báo lỗi "Sự cố máy chủ" và việc truy cập vào các bài viết lúc được lúc không.

Ảnh chụp màn hình 2022-07-10 09-30-13PM

Hiện tại, web Tinhte vẫn không truy cập được bình thường và vẫn thường xuyên báo lỗi như trên. Người dùng nếu kiên nhẫn refresh thì có thể vẫn truy cập được, nhưng sau đó bấm vào các bài viết vẫn sẽ có lúc không đọc được bài.

Do sự cố này, máy chủ cung cấp link RSS (link chia sẻ tin tức) của Tinhte cũng liên tục báo lỗi và không thể tải tin về.

Theo nhận định của một chuyên gia phần mềm thì đây là lỗi bên trong server, có thể là một module nào đó bị lỗi khi nâng cấp, hoặc server bị quá tải. Do hệ thống vào chập chờn nên có thể nguyên nhân nghiêng về server bị quá tải. Cũng không loại trừ khả năng máy chủ bị tấn công DDoS.

“Hello, World!” trong TypeScript

Chào các bạn, bài trước mình đã hướng dẫn về cài đặt TypeScript, bây giờ hãy viết ứng dụng đầu tiên bằng ngôn ngữ này. Chúng ta bắt đầu thôi!


Code hiển thị 'Hello World' trong node.js

  1. Đầu tiên hãy tạo một thư mục để lưu code, ví dụ thư mục là: helloworld
  2. Chạy Visual Studio Code và mở thư mục đó .
  3. Tạo một tệp TypeScript gọi là app.ts với phần mở rộng (đuôi) của file là .ts
  4. Thêm code bên dưới vào tệp app.ts

let message: string = 'Hello, World!';

console.log(message);

Mở Terminal trong Visual Studio Code bằng shortcut hoặc theo menu Terminal > New Terminal

Gõ lệnh bên dưới để biên dịch tệp app.ts:

tsc app.ts

Nếu bạn làm đúng, bạn sẽ thấy một file gọi là app.js được sinh ra bởi TypeScript Compiler (node.js module)

Chạy tệp app.js

Để chạy tệp app.js trong node.js, bạn hãy sử dụng lệnh sau:

node app.js

Và kết quả đầu ra là:

Hello, World!

BONUS Code TypeScript hiển thị 'Hello World' trong Web Browsers

Đầu tiên, bạn tạo một tệp mới gọi là index.html và include file app.js như bên dưới:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TypeScript: Hello, World!</title>
</head>
<body>
    <script src="app.js"></script>
</body>
</html>


Cập nhật code của tệp mã app.ts như bên dưới:

let message: string = 'Hello, World!';
// create a new heading 1 element
let heading = document.createElement('h1');
heading.textContent = message;
// add the heading the document
document.body.appendChild(heading);


Biện dịch tệp TypeScript tên là app.ts với Command sau:

tsc app.ts

Mở Live Server từ VS code bằng cách click chuột phải vào file index.html và select với Open with Live Server

Và đây là kết quả


Để thực hiện các thay đổi, bạn cần chỉnh sửa tệp app.ts. 

Ví dụ:

let message: string = 'Hello, TypeScript!';

let heading = document.createElement('h1');

heading.textContent = message;

document.body.appendChild(heading);

Và biên dịch tệp app.ts:

tsc app.ts

Đầu ra khi chạy trên LiveServer

Hello, TypeScript!

TypeScript Compiler sẽ sinh ra một file mới là app.js và Live Server sẽ tự động nạp tệp đó trên trình duyệt web.

Chú ý: Tệp app.js là file đầu ra của file app.ts. Do đó, bạn không bao giờ được trực tiếp thay đổi code trong tệp này, nếu không bạn sẽ mất các thay đổi sau khi biên dịch lại tệp app.ts.

Cập nhật động thái mới nhất của Heroku trong vụ Hack bằng OAuth

 

• Live Now (Bắt đầu cập nhật vào 14:19:13 17/03/2020) | Từ cũ tới mới | Bài viết nên xem bằng App DBlog


12:23 18/04/2022



12:30 18/04/2022

Chúng tôi sẽ trích dẫn mọi thông tin mới nhất của Heroku

Tại Salesforce, niềm tin là giá trị số một của chúng tôi. Chúng tôi đang tích cực điều tra một báo cáo nhận được vào ngày 13 tháng 4 năm 2022, từ GitHub rằng một tập hợp con các kho lưu trữ riêng github của Heroku, bao gồm một số mã nguồn, đã được tải xuống bởi một diễn viên đe dọa vào ngày 9 tháng 4 năm 2022. Chúng tôi đã chủ động thông báo cho khách hàng Heroku của chúng tôi về vấn đề này và sẽ tiếp tục cung cấp thông tin cập nhật để hỗ trợ họ khi cuộc điều tra tiếp tục. Nếu Salesforce hoặc GitHub nhận thức được việc truy cập trái phép vào kho lưu trữ GitHub của khách hàng được kết nối với Heroku, chúng tôi sẽ thông báo cho khách hàng bị ảnh hưởng qua email mà không bị chậm trễ quá mức.

12:31 22/04/2022

Tại Salesforce, chúng tôi hiểu rằng tính bảo mật, tính toàn vẹn và tính sẵn có của dữ liệu của bạn là rất quan trọng đối với doanh nghiệp của bạn và chúng tôi rất coi trọng việc bảo vệ dữ liệu của bạn. Chúng tôi đánh giá cao tính minh bạch và muốn thông báo cho bạn về một sự cố mà chúng tôi đang tích cực điều tra có thể dẫn đến việc truy cập trái phép vào kho lưu trữ GitHub của bạn được kết nối với Heroku.

Vào ngày 13 tháng 4 năm 2022, Salesforce Security đã được GitHub thông báo rằng một tập hợp con các kho lưu trữ riêng GitHub của Heroku, bao gồm một số mã nguồn, đã được tải xuống bởi một tác nhân đe dọa vào ngày 9 tháng 4 năm 2022. Dựa trên cuộc điều tra ban đầu của Salesforce, có vẻ như việc truy cập trái phép vào tài khoản GitHub của Heroku là kết quả của một mã thông báo OAuth bị xâm nhập. Salesforce ngay lập tức vô hiệu hóa mã thông báo OAuth của người dùng bị xâm nhập và vô hiệu hóa tài khoản GitHub của người dùng bị xâm phạm. Ngoài ra, GitHub báo cáo rằng tác nhân đe dọa đã liệt kê các tài khoản khách hàng của GitHub bằng cách sử dụng mã thông báo OAuth được cấp cho bảng điều khiển tích hợp OAuth của Heroku được lưu trữ trên GitHub. Dựa trên thông tin GitHub chia sẻ với chúng tôi, chúng tôi đang điều tra làm thế nào tác nhân đe dọa có quyền truy cập vào mã thông báo OAuth của khách hàng. Các token bị xâm nhập có thể cung cấp cho tác nhân đe dọa quyền truy cập vào các repos GitHub của khách hàng, nhưng không phải là tài khoản Heroku của khách hàng. Với quyền truy cập vào mã thông báo OAuth của khách hàng, tác nhân đe dọa có thể đã đọc và viết quyền truy cập vào các kho lưu trữ GitHub của khách hàng được kết nối với Heroku. Do sự cố vẫn đang hoạt động, vui lòng xem lại các hành động được đề xuất được cung cấp dưới đây.

Vui lòng làm theo hướng dẫn dưới đây để tiến hành đánh giá toàn diện nhật ký GitHub của bạn để tìm bằng chứng về việc lọc. Nếu bạn xác định được hoạt động đáng ngờ, vui lòng liên hệ với security@salesforce.com để chia sẻ những phát hiện của bạn có thể hỗ trợ điều tra của chúng tôi.

Ngoài ra, chúng tôi khuyên bạn nên ngắt kết nối Heroku khỏi kho lưu trữ GitHub của bạn. Xin lưu ý rằng việc ngắt kết nối sẽ ngăn bạn triển khai ứng dụng của mình bằng bảng điều khiển Heroku và đường ống sẽ hoạt động một phần. Trong khi bị ngắt kết nối, bạn có thể sử dụng một trong các phương pháp triển khai mã khác có sẵn trong tài liệu sau:

Nếu bạn thấy bằng chứng về việc lọc trong nhật ký của mình, bạn nên xem xét cẩn thận thông qua các kho lưu trữ của mình để tìm bất kỳ thông tin đăng nhập nào có thể đã bị xâm phạm và giảm thiểu quyền truy cập bằng cách vô hiệu hóa tài khoản và xoay thông tin đăng nhập khi cần thiết. Chúng tôi cũng khuyên bạn nên thu hồi hoặc xoay chuyển bất kỳ thông tin đăng nhập bị lộ nào. Quét thông tin đăng nhập mã nguồn là một trong những cách chính mà các tác nhân độc hại có thể leo thang quyền truy cập của họ.

Salesforce tiếp tục điều tra sự cố này phối hợp với GitHub và nhà cung cấp vi phạm bên thứ ba được giữ lại của chúng tôi. Một khi chúng tôi xác định cách tác nhân đe dọa có quyền truy cập vào mã thông báo OAuth của khách hàng, chúng tôi sẽ ngay lập tức thực hiện các hành động thích hợp.

Nếu bạn thấy bất kỳ bằng chứng nào về tác động, vui lòng mở một trường hợp với Hỗ trợ Heroku.

Các bản cập nhật sẽ được đăng lên status.heroku.com khi có thêm thông tin. Nếu Salesforce nhận thức được quyền truy cập trái phép vào kho lưu trữ GitHub của khách hàng được kết nối với Heroku, chúng tôi sẽ thông báo cho khách hàng bị ảnh hưởng qua email mà không chậm trễ quá mức.

Heroku Security Update: Các bước giảm thiểu tích hợp GitHub

Để giảm thiểu tác động từ các token OAuth có khả năng bị xâm phạm, chúng tôi sẽ thu hồi trong vài giờ tới tất cả các token hiện có từ tích hợp Heroku GitHub. Chúng tôi cũng đang ngăn chặn các token OAuth mới được tạo cho đến khi có thông báo mới. Kho lưu trữ GitHub của bạn sẽ không bị ảnh hưởng dưới bất kỳ hình thức nào bởi hành động này.

Hiện tại đang chạy các ứng dụng Heroku sẽ không bị ảnh hưởng, nhưng điều này sẽ ngăn bạn triển khai ứng dụng của mình từ GitHub thông qua bảng điều khiển hoặc thông qua tự động hóa. Một số hành động khác trong bảng điều khiển sẽ không còn hoạt động do giảm thiểu này và bạn sẽ không thể kết nối lại với GitHub mặc dù bạn có thể thấy các biểu ngữ cảnh báo về việc kết nối lại. Như một giải pháp tạm thời, bạn có thể sử dụng một trong các phương pháp triển khai mã khác có sẵn trong tài liệu

13:03 22/04/2022

Heroku Security Update: OAuth token bị thu hồi

Vào lúc 5:00 chiều.m. PT vào ngày 16 tháng 4 năm 2022, Salesforce đã hoàn thành việc thu hồi tất cả các token OAuth từ tích hợp Heroku Dashboard GitHub. Như đã đề cập trước đây, điều này sẽ ngăn bạn triển khai ứng dụng của mình từ GitHub thông qua bảng điều khiển Heroku hoặc thông qua tự động hóa Heroku và một số hành động khác trong bảng điều khiển sẽ không còn hoạt động. Mặc dù bạn sẽ không thể kết nối lại với GitHub thông qua bảng điều khiển Heroku, bạn có thể tiếp tục sử dụng các phương pháp triển khai mã khác có sẵn trong tài liệu 

Như đã báo cáo ngày hôm qua, việc thu hồi tất cả các token OAuth từ tích hợp Heroku Dashboard GitHub đã hoàn tất. Cho đến khi có thông báo mới, chúng tôi sẽ không phát hành mã thông báo OAuth từ Bảng điều khiển Heroku. Những hành động này, dựa trên sự hiểu biết hiện tại của chúng tôi về vấn đề này, sẽ ngăn chặn truy cập trái phép vào kho lưu trữ GitHub của bạn.

Chúng tôi sẽ tiếp tục làm việc với GitHub để cung cấp hướng dẫn bổ sung về cách xem xét nhật ký GitHub của bạn để tìm bằng chứng về việc lọc hoặc hoạt động độc hại. Vui lòng liên hệ với security@salesforce.com với bất kỳ thông tin nào có thể hỗ trợ chúng tôi trong cuộc điều tra đang diễn ra của chúng tôi.

Chúng tôi tiếp tục đạt được tiến bộ trong cuộc điều tra về vấn đề này. Trong quá trình điều tra, thông tin chúng tôi nhận được từ khách hàng của Heroku rất hữu ích. Nếu bạn đã có được nhật ký từ GitHub và xác định hoạt động đáng ngờ mà bạn tin rằng có thể hỗ trợ chúng tôi trong cuộc điều tra của chúng tôi, vui lòng liên hệ với security@salesforce.com. Chúng tôi đánh giá cao sự hợp tác và tin tưởng của bạn khi chúng tôi tiếp tục làm cho thành công của bạn là ưu tiên hàng đầu của chúng tôi.

Khi cuộc điều tra của chúng tôi tiếp tục, chúng tôi hiểu khách hàng của chúng tôi có thể nhận được thông báo trực tiếp từ cả Heroku và GitHub và chúng tôi ở đây để hỗ trợ. Chúng tôi rất coi trọng việc bảo vệ dữ liệu của khách hàng và cam kết cung cấp hướng dẫn cần thiết trong thời gian quan trọng này.

Trong khi khách hàng của chúng tôi vẫn không thể kết nối lại với GitHub thông qua bảng điều khiển Heroku, chúng tôi muốn chia sẻ một bổ sung cho các phương pháp triển khai mã được cung cấp trước đó. Để được hướng dẫn cách thay đổi phương thức triển khai của bạn từ GitHub sang Heroku Git, vui lòng tham khảo bài viết Trợ giúp sau: Cách chuyển phương thức triển khai từ GitHub sang Heroku Git với tất cả các thay đổi / mã ứng dụng có sẵn trong repo GitHub.

Một khi chúng tôi đã xác định rằng người dùng có thể kết nối lại với GitHub một cách an toàn thông qua bảng điều khiển Heroku, chúng tôi sẽ khôi phục tích hợp. Vui lòng tiếp tục truy cập status.heroku.com để cập nhật thông tin.

Thông tin GitHub chỉ có sẵn cho khách hàng heroku có thể có giá trị trong việc giúp chúng tôi hiểu phạm vi tác động của vấn đề này. Nếu bạn đã có được nhật ký từ GitHub và xác định hoạt động đáng ngờ mà bạn tin rằng có thể hỗ trợ cuộc điều tra của chúng tôi, vui lòng liên hệ với security@salesforce.com.

Chúng tôi chân thành lấy làm tiếc về bất kỳ sự bất tiện nào bạn đã trải qua do sự cố này và đánh giá cao sự hợp tác và tin tưởng của bạn khi chúng tôi tiếp tục coi thành công của bạn là ưu tiên hàng đầu của chúng tôi.

19:23 23/04/2022

Chúng tôi rất coi trọng việc bảo vệ khách hàng của mình và kết quả là, chúng tôi sẽ không kết nối lại với GitHub cho đến khi chúng tôi chắc chắn rằng chúng tôi có thể làm như vậy một cách an toàn, điều này có thể mất một thời gian. Chúng tôi khuyên khách hàng nên sử dụng các phương pháp thay thế thay vì chờ chúng tôi khôi phục tích hợp này.

Cách tiếp cận đơn giản nhất để triển khai ứng dụng Heroku là trực tiếp sử dụng git push heroku main. Ngoài ra, bạn có thể tham khảo một trong những tiện ích bổ sung được liệt kê trong phần Tích hợp và Phân phối liên tục của Thị trường Hệ sinh thái Heroku hoặc các sản phẩm CI / CD của bên thứ ba khác cung cấp hỗ trợ Heroku, chẳng hạn như Circle CI. Bạn cũng có thể sử dụng các tích hợp do cộng đồng duy trì như GitHub Action này để triển khai đến Heroku.

Chúng tôi chân thành hối tiếc về bất kỳ sự bất tiện nào bạn có thể đã trải qua do vấn đề này và đánh giá cao sự tin tưởng của bạn đối với chúng tôi khi chúng tôi tiếp tục coi thành công của bạn là ưu tiên hàng đầu của chúng tôi. Vui lòng tiếp tục truy cập status.heroku.com để cập nhật những cập nhật mới nhất.

23:30 23/04/2022

Khi chúng tôi bước vào cuối tuần, chúng tôi vẫn cảnh giác và cam kết điều tra. Chúng tôi sẽ giữ cho khách hàng của chúng tôi được thông báo về thông tin và hướng dẫn mới khi nó có sẵn. Vui lòng xem các bài đăng status.heroku.com trước để biết thông tin về cách yêu cầu nhật ký từ GitHub và cách triển khai đến Heroku.

00:00 25/04/2022

Cuộc điều tra của chúng tôi đang diễn ra và các nhóm Hỗ trợ và Bảo mật của chúng tôi đang tiếp tục trả lời các câu hỏi của khách hàng. Khi chúng tôi cùng nhau giải quyết vấn đề này, vui lòng liên hệ với Bộ phận Hỗ trợ Heroku để giải quyết các vấn đề tích hợp cụ thể hoặc security@salesforce.com nếu bạn đã có được nhật ký từ GitHub và xác định hoạt động đáng ngờ. Chúng tôi đánh giá cao sự kiên nhẫn của bạn khi chúng tôi làm cho thành công của bạn là ưu tiên hàng đầu của chúng tôi.

23:56 25/04/2022

Như một lời nhắc nhở, Salesforce Security không có quyền truy cập vào nhật ký kho lưu trữ GitHub của khách hàng sẽ tiết lộ những hành động nào, nếu có, đã được thực hiện bởi tác nhân đe dọa, vì các bản ghi thuộc về GitHub và bạn là khách hàng của GitHub.

Chúng tôi khuyên bạn nên tiến hành đánh giá toàn diện nhật ký GitHub của bạn để tìm bằng chứng về sự lọc hoặc hoạt động độc hại. Nếu bạn phát hiện ra các nhật ký tiết lộ các chỉ số thỏa hiệp (IOC), chúng tôi khuyến khích bạn chia sẻ chúng với chúng tôi trong email để security@salesforce.com.

Nếu bạn thấy bằng chứng về việc lọc trong nhật ký của mình, bạn nên xem xét cẩn thận thông qua các kho lưu trữ của mình để tìm bất kỳ thông tin đăng nhập nào có thể đã bị xâm phạm và giảm thiểu quyền truy cập bằng cách vô hiệu hóa tài khoản và xoay thông tin đăng nhập khi cần thiết. Chúng tôi cũng khuyên bạn nên thu hồi hoặc xoay chuyển bất kỳ thông tin đăng nhập bị lộ nào. Quét thông tin đăng nhập mã nguồn là một trong những cách chính mà các tác nhân độc hại có thể leo thang quyền truy cập của họ. Ngoài ra, nếu bạn xác định hoạt động bất thường trong nhật ký của mình, vui lòng xem lại thao tác mã được lưu trữ của bạn.

17:02 27/04/2022

Để bảo vệ khách hàng của chúng tôi, chúng tôi sẽ không kết nối lại với GitHub cho đến khi chúng tôi chắc chắn rằng chúng tôi có thể làm như vậy một cách an toàn, có thể mất một thời gian. Chúng tôi khuyên khách hàng nên sử dụng các phương pháp thay thế thay vì chờ chúng tôi khôi phục tích hợp này.

Cách tiếp cận đơn giản nhất để triển khai ứng dụng Heroku là trực tiếp sử dụng git push heroku main. Ngoài ra, bạn có thể tham khảo một trong những tiện ích bổ sung được liệt kê trong phần Tích hợp và Phân phối liên tục của Thị trường Hệ sinh thái Heroku hoặc các sản phẩm CI / CD của bên thứ ba khác cung cấp hỗ trợ Heroku, chẳng hạn như Circle CI. Bạn cũng có thể sử dụng các tích hợp do cộng đồng duy trì như GitHub Action này để triển khai đến Heroku.

Chúng tôi chân thành lấy làm tiếc về bất kỳ sự bất tiện nào bạn có thể đã trải qua vì vấn đề này và đánh giá cao sự tin tưởng của bạn đối với chúng tôi khi chúng tôi tiếp tục coi thành công của bạn là ưu tiên hàng đầu của chúng tôi. Vui lòng tiếp tục truy cập status.heroku.com để cập nhật những cập nhật mới nhất.

Khi cuộc điều tra của chúng tôi tiếp tục, chúng tôi hiểu khách hàng của chúng tôi có thể nhận được thông báo trực tiếp từ GitHub. Nếu bạn đã có được nhật ký từ GitHub tiết lộ các chỉ số thỏa hiệp tiềm năng (IOC), chúng tôi khuyến khích bạn chia sẻ các IOC đó với chúng tôi trong email để security@salesforce.com. Nếu bạn cần giải quyết các vấn đề tích hợp cụ thể, vui lòng liên hệ với Bộ phận Hỗ trợ Heroku. Chúng tôi đánh giá cao sự hợp tác và tin tưởng của bạn khi chúng tôi tiếp tục làm cho thành công của bạn là ưu tiên hàng đầu của chúng tôi.

06:03 29/04/2022

Cảm ơn sự kiên nhẫn của bạn khi chúng tôi tiếp tục làm việc thông qua vấn đề này. Cuộc điều tra của chúng tôi đang diễn ra và các nhóm Hỗ trợ và Bảo mật tiếp tục trả lời các câu hỏi của khách hàng. Chúng tôi đánh giá cao tất cả các thông tin nhận được cho đến nay và khuyến khích bạn tiếp tục chia sẻ câu hỏi với Heroku Support và IOCs với security@salesforce.com.

08:12 04/05/2022

Một nhóm khách hàng của Heroku sẽ nhận được thông báo qua email trực tiếp từ Salesforce Incident Alerts (incidentalerts@msg.salesforce.com) về những nỗ lực liên tục của chúng tôi để tăng cường bảo mật. Nếu bạn có bất kỳ câu hỏi nào hoặc cần giải quyết các vấn đề tích hợp cụ thể, vui lòng liên hệ với Bộ phận Hỗ trợ Heroku. Chúng tôi đánh giá cao sự hợp tác và tin tưởng của bạn khi chúng tôi tiếp tục làm cho thành công của bạn là ưu tiên hàng đầu của chúng tôi.

00:55 06/05/2022

Chúng tôi đánh giá cao tính minh bạch và hiểu rằng khách hàng của chúng tôi đang tìm kiếm sự hiểu biết sâu sắc hơn về tác động của sự cố này và phản ứng của chúng tôi cho đến nay.

Chúng tôi tiếp tục làm việc chăm chỉ để đối phó với sự cố Heroku này lần đầu tiên được công bố vào ngày 15 tháng 4 năm 2022. Chúng tôi đã làm việc với GitHub, các nhà cung cấp thông tin tình báo về mối đe dọa của chúng tôi, các đối tác công nghiệp khác và đã liên lạc với cơ quan thực thi pháp luật để hỗ trợ điều tra của chúng tôi. Không ảnh hưởng đến cuộc điều tra đang diễn ra của chúng tôi hoặc sự an toàn của khách hàng, chúng tôi có thể chia sẻ các chi tiết sau đây.

Vào ngày 7 tháng 4 năm 2022, một tác nhân đe dọa đã có quyền truy cập vào cơ sở dữ liệu Heroku và tải xuống mã thông báo OAuth tích hợp github của khách hàng được lưu trữ. Truy cập vào môi trường đã đạt được bằng cách tận dụng một mã thông báo bị xâm phạm cho một tài khoản máy Heroku. Theo GitHub, tác nhân đe dọa bắt đầu liệt kê siêu dữ liệu về kho lưu trữ của khách hàng với mã thông báo OAuth đã tải xuống vào ngày 8 tháng 4 năm 2022. Vào ngày 9 tháng 4 năm 2022, kẻ tấn công đã tải xuống một tập hợp con của kho lưu trữ GitHub riêng tư Heroku từ GitHub, chứa một số mã nguồn Heroku.

GitHub đã xác định hoạt động vào ngày 12 tháng 4 năm 2022 và thông báo cho Salesforce vào ngày 13 tháng 4 năm 2022, tại thời điểm đó chúng tôi bắt đầu điều tra. Kết quả là, vào ngày 16 tháng 4 năm 2022, chúng tôi đã thu hồi tất cả các token OAuth tích hợp GitHub, ngăn khách hàng triển khai ứng dụng từ GitHub thông qua Bảng điều khiển Heroku hoặc thông qua tự động hóa. Chúng tôi vẫn cam kết đảm bảo việc tích hợp được an toàn trước khi chúng tôi kích hoạt lại chức năng này.

Một cách riêng biệt, cuộc điều tra của chúng tôi cũng tiết lộ rằng cùng một mã thông báo bị xâm nhập đã được tận dụng để truy cập vào cơ sở dữ liệu và trích xuất mật khẩu băm và muối cho tài khoản người dùng của khách hàng. Vì lý do này, Salesforce đảm bảo tất cả mật khẩu người dùng Heroku được đặt lại và thông tin đăng nhập có khả năng bị ảnh hưởng được làm mới. Chúng tôi đã xoay các thông tin đăng nhập Heroku nội bộ và đưa ra các phát hiện bổ sung. Chúng tôi đang tiếp tục điều tra nguồn gốc của thỏa hiệp token.

14:33 09/05/2022

Khi cuộc điều tra của chúng tôi tiếp tục vào cuối tuần, chúng tôi muốn chia sẻ một bài đăng trên blog từ Tổng giám đốc Heroku và Salesforce EVP, Bob Wise, liên quan đến vấn đề này và phản hồi của chúng tôi.

Kể từ bản cập nhật cuối cùng của chúng tôi, chúng tôi đã xác nhận rằng Heroku đã hoàn thành việc đặt lại mật khẩu cần thiết. Chúng tôi không có bằng chứng về bất kỳ truy cập trái phép nào vào các hệ thống Heroku kể từ ngày 14 tháng 4 năm 2022. Phân tích này dựa trên cuộc điều tra của chúng tôi cho đến nay, được hỗ trợ bởi một nhà cung cấp bảo mật bên thứ ba hàng đầu và các hệ thống phát hiện mối đe dọa rộng lớn của chúng tôi.

Chúng tôi cũng muốn giải quyết một câu hỏi liên quan đến tác động đến các biến môi trường. Trong khi chúng tôi xác nhận rằng tác nhân đe dọa có quyền truy cập vào bí mật khách hàng Heroku được mã hóa được lưu trữ trong var cấu hình, các bí mật được mã hóa khi nghỉ ngơi và tác nhân đe dọa không truy cập khóa mã hóa cần thiết để giải mã bí mật var cấu hình.

09:21 18/05/2022

Dựa trên tiến độ hiện tại, chúng tôi có kế hoạch hoàn thành cuộc điều tra trước ngày 30 tháng 5 năm 2022. Chúng tôi đang tiếp tục các hoạt động khắc phục và dự định công bố thông tin bổ sung về sự cố sau khi sự cố được giải quyết.
  • Tại thời điểm này, chúng tôi không thấy mã thông báo OAuth bổ sung nào bị xâm phạm ngoài những gì đã được báo cáo vào ngày 15 tháng 4 năm 2022.
  • GitHub đã liên hệ với tất cả khách hàng mà họ xác định là bị ảnh hưởng bởi sự cố.
  • Heroku đã hoàn thành việc đặt lại mật khẩu cần thiết vào ngày 5 tháng 5 năm 2022.
  • Chúng tôi không có bằng chứng về bất kỳ truy cập trái phép nào vào hệ thống Heroku kể từ ngày 14 tháng 4 năm 2022.
  • Trong trường hợp chúng tôi thông báo trực tiếp cho khách hàng, email liên lạc sẽ được gửi từ Salesforce (techcomms@mail.salesforce.com).
Chúng tôi biết bạn đang đợi chúng tôi kích hoạt lại khả năng tích hợp với GitHub và chúng tôi đã cam kết với bạn rằng chúng tôi sẽ chỉ làm như vậy sau khi đánh giá bảo mật.

20:24 19/05/2022

Chúng tôi cố gắng đảm bảo an ninh cho khách hàng và do đó, tiếp tục theo đuổi tất cả các khách hàng tiềm năng như một phần của cuộc điều tra của chúng tôi. Là một phần của cam kết đó, chúng tôi muốn cho bạn biết về hai phát hiện bổ sung có thể ảnh hưởng đến một số lượng nhỏ khách hàng của chúng tôi.

Như đã báo cáo trên status.heroku.com , vào ngày 7 tháng 4 năm 2022, một kẻ đe dọa đã có được quyền truy cập vào cơ sở dữ liệu Heroku và tải xuống mã thông báo OAuth tích hợp GitHub của khách hàng được lưu trữ. Cùng ngày đó, kẻ đe dọa đã tải xuống dữ liệu từ một cơ sở dữ liệu khác lưu trữ các cấu hình cấp độ đường ống cho Ứng dụng đánh giá và Heroku CI . Ngoài ra, một nhóm nhỏ người dùng Heroku khác đã để lộ các mã thông báo Heroku của họ trong một var cấu hình cho một đường ống. Điều này được xác định vào ngày 16 tháng 5 năm 2022, sau khi điều tra thêm về pháp y. Chúng tôi không có bằng chứng về bất kỳ truy cập trái phép nào vào hệ thống Heroku kể từ ngày 14 tháng 4 năm 2022.

Bất kỳ người dùng nào bị ảnh hưởng bởi những vấn đề này đều được thông báo trực tiếp và được cung cấp thêm hướng dẫn. Nếu bạn không nhận được email trực tiếp từ chúng tôi, chúng tôi không có bằng chứng cho thấy bạn bị ảnh hưởng bởi một trong hai vấn đề được xác định gần đây này. Nếu bạn nhận được email từ Salesforce (techcomms@mail.salesforce.com) và đã xác định được hoạt động đáng ngờ, vui lòng liên hệ với security@salesforce.com.

TypeScript: Cài đặt TypeScript

Chào mừng bạn đã đến với bài viết này! Trong bài viết trước, mình đã giới thiệu về TypeScript rồi, hôm nay, chúng mình cùng tìm hiểu cách cài TypeScript nhé!

Các công cụ bạn cần chuẩn bị để cài đặt cho việc sử dụng TypeScript như sau:

  • Node.js: Node.js là môi trường bạn sẽ dùng để chạy phần biên dịch mã code TypeScript. Lưu ý rằng bạn không cần có kiến thức về node.js! Chỉ dùng để làm môi trường mà chạy biên dịch (compile) cho code thôi!
  • TypeScript compiler: Là một mô-đun Node.js mà sẽ đảm nhận phần biên dịch code TypeScript thành code JavaScript.
  • Visual Studio Code (VS code): Là một trình viết mã (code editor) có hỗ trợ viết TypeScript. Bạn cũng có thể sử dụng các editor khác (như Sublime Text,...) nhé.

Nếu bạn sử dụng VS code, bạn có thể cài đặt phần mở rộng sau để tăng tốc quá trình phát triển:
  • Live Server : Cho phép bạn khởi chạy một server nội bộ (localhost) cho việc phát triển.

Cài đặt Node.js

Để cài đặt node.js, bạn hãy làm theo các bước sau:
  • Truy cập node.js download page
  • Tải về tệp cài đặt node.js phù hợp với hệ điều hành của bạn (Windows, macOS hoặc Linux)
  • Tiến hành cài đặt gói đã tải về (theo hướng dẫn trên trang Web)
  • Xác nhận cài đặt bằng cách mở Terminal trên macOS và Linux hoặc Command trên Windows và gõ command node -v .Nếu bạn thấy hiển thị version của node.js thì bạn đã cài đặt thành công node.js trên máy tính của bạn.

Cài đặt bộ biên dịch compiler

Để cài đặt, mở Terminal trên macOS và Linux hoặc Command trên Windows và gõ
npm install -g typescript

Sau khi cài đặt, bạn có thể gõ command bên dưới để kiểm tra version hiện tại của TypeScript compiler:

tsc --v

Nó sẽ hiển thị version như thế này:

Version 4.6.4

Nếu bạn đang dùng máy Windows và gặp lỗi:

'tsc' is not recognized as an internal or external command, operable program or batch file.

Để sữa lỗi này bạn hãy thêm đường dẫn 'C:\Users<tên user của bạn>\AppData\Roaming\npm' vào biến môi trường PATH nhé. Chú ý bạn hãy thay đổi <tên user của bạn> đến tên user trên Windows của bạn.

Cài đặt Visual Studio Code (VS Code)

Để cài đặt VS Code, bạn hãy làm theo các bước sau:

- Di chuyển đến VS Code download page

- Tải xuống phiên bản VS Code mới nhất phù hợp với hệ điều hành của bạn (Windows, macOS hoặc Linux)

- Tiến hành cài đặt package đã downloaded về

- Mở VS Code

Sau khi mở VS Code, bạn sẽ thấy VS Code như hình sau:

Để cài đặt Live Server extension, bạn hãy làm theo các bước dưới đây:

  • Nhấp vào tab Extensions để chuyển sang màn hình Extensions cho Visual Studio Code
  • live server và tìm kiếm.
  • Nhấp vào Live Server của Ritwick Dey, chọn Install để cài đặt extension.

Vậy là quá trình cài đặt TypeScript của chúng ta đã hoàn thành rồi nhé! Hãy chờ đọc bài viết tiếp theo để học tiếp về TypeScript nha!

Tìm hiểu về HTTP Status Code

Nếu bạn là một web developer hoặc thường xuyên làm việc với các API chắc chắn bạn đã quá quen thuộc với các con số 200, 404, 500... chúng là các Status Code của HTTP. Vậy có khi nào bạn tự hỏi ngoài các con số trên còn các số nào không, ý nghĩa của chúng là gì? Trong blog này tôi sẽ giải quyết điều này giúp bạn. Nào chúng ta bắt đầu thôi!

Khi trình duyệt yêu cầu một điều gì đó từ máy chủ web, lỗi có thể xảy ra và máy chủ có thể trả về mã lỗi như "404 Not Found".

Người ta thường đặt tên cho những lỗi này là thông báo lỗi HTML. Nhưng những thông báo này cũng được gọi là thông báo trạng thái HTTP. Trên thực tế, máy chủ luôn trả về thông báo cho mọi yêu cầu. Thông báo phổ biến nhất là 200 OK.

Trước tiên chúng ta sẽ tìm hiểu một chút về HTTP Response. Khi nhận và phiên dịch một HTTP Request, Server sẽ gửi tín hiệu phản hồi là một HTTP Response bao gồm các thành phần sau :

  • Một dòng trạng thái (Status-Line)
  • Không hoặc nhiều hơn các trường Header (General|Response|Entity) được theo sau CRLF
  • Một dòng trống chỉ dòng kết thúc của các trường Header
  • Một phần thân thông báo tùy ý
Dưới đây là một ví dụ về HTTP status code:

Phản hồi 200/OK

Bây giờ chúng ta sẽ tập trung chính vào dòng Status Code: Một dòng Status Code bao gồm mã hóa trạng thái số (Status Code) và cụm từ thuần văn bản được liên kết của nó. Các thành phần được phân biệt bởi dấu cách

Status code (Mã hóa trạng thái thường được gọi là mã trạng thái) là một số nguyên 3 ký tự, trong đó ký tự đầu tiên của Status-Code định nghĩa loại Response và hai ký tự cuối không có bất cứ vai trò phân loại nào. Có 5 giá trị của ký tự đầu tiên:

  • 1xx: Information (Thông tin): Khi nhận được những mã như vậy tức là request đã được server tiếp nhận và quá trình xử lý request đang được tiếp tục.
  • 2xx: Success (Thành công): Khi nhận được những mã như vậy tức là request đã được server tiếp nhận, hiểu và xử lý thành công
  • 3xx: Redirection (Chuyển hướng): Mã trạng thái này cho biết client cần có thêm action để hoàn thành request
  • 4xx: Client Error (Lỗi Client): Nó nghĩa là request chứa cú pháp không chính xác hoặc không được thực hiện.
  • 5xx: Server Error (Lỗi Server): Nó nghĩa là Server thất bại với việc thực hiện một request nhìn như có vẻ khả thi.
Status-Code HTTP là có thể co giãn và ứng dụng HTTP không được yêu cầu để hiểu ý nghĩa của tất cả các mã trạng thái được đăng ký. Một danh sách của tất cả các mã trạng thái đã được cung cấp trong một chương riêng biệt.

Cám ơn các bạn đã theo dõi.

TypeScript là gì?

TypeScript là một ngôn ngữ lập trình mã nguồn mở, được xây dựng dựa trên JavaScript. Đầu tiên bạn bạn viết một đoạn code TypeScript, sau đó bạn phải biên dịch (compiler) đoạn code đó ra code JavaScript thuần túy.

Khi chúng ta có code JavaScript thuần túy, bạn có thể chạy nó trên bất kỳ môi trường nào mà JavaScript chạy.

Files chứa code TypeScript có phần đuôi mở rộng .ts thay vì sử dụng đuôi .js của files Javascript thuần túy.


TypeScript giúp tăng năng suất làm việc bằng việc tránh được lỗi (bug)

Khi sử dụng Types để định nghĩa kiểu dữ liệu trong TypeScript bạn có thể bắt được các bugs tại thời điểm biên dịch thay vì để chúng xuất hiện trong môi trường chạy thực tế.

Ví dụ chúng ta có hàm cộng 2 số như bên dưới

function add(x, y) {

   return x + y;

}

Nếu bạn lấy giá trị từ form input html và đưa chúng vào trong function thì bạn sẽ nhận được kết quả là string chứ không phải là number.

let result = add(input1.value, input2.value);
console.log(result); // result of concatenating strings

Ví dụ, nếu người dùng nhập giá trị 10 và 20 thì hàm add() sẽ trả về giá trị 1020 chứ không phải là 30.
Lý do là giá trị input1.value và input2.value nhận từ from input là chuỗi, không phải là string. Khi bạn sử dụng toán tử + để cộng 2 string, nó sẽ trả về một string.
Khi bạn sử dụng TypeScript để chỉ định rõ rằng kiểu dữ liệu cho các tham số như sau:

function add(x: number, y: number) {
   return x + y;
}

Trong hàm add(), chúng ta thêm types number cho các tham số. Hàm add() sẽ chỉ chấp nhận các tham số có types giá trị là numbers.
Khi bạn gọi hàm bên dưới:

let result = add(input1.value, input2.value);

Trình biên dịch TypeScript sẽ gặp lỗi nếu bạn biên dịch từ TypeScript code đến JavaScript. Do đó, bạn có thể ngăn lỗi xảy ra trong thời gian chạy chương trình.

Giám đốc Heroku: "Chúng tôi đã nghe phản hồi của bạn"

 Bài viết được biên dịch sang tiếng Việt bởi DBlog, mong các thánh Copy ghi nguồn và dẫn Link đầy đủ để tôn trọng tác giả!

Tôi bắt đầu với tư cách là Heroku GM (thành viên đội Heroku) vài tuần trước với một sự nhiệt tình mãnh liệt để mong được trở thành một phần của một đội ngũ tốt như vậy. Như bạn có thể mong đợi, vài tuần qua không phải là những gì tôi có thể tưởng tượng. Nhưng, trái ngược với những gì bạn có thể mong đợi, tôi tràn đầy năng lượng.

Tôi đã rất ấn tượng bởi các kỹ năng và sự cống hiến của đội ngũ Heroku, và cam kết của Salesforce đối với Niềm tin là giá trị số 1 của chúng tôi. Tôi cũng tràn đầy năng lượng vì rõ ràng là đội Heroku không đứng một mình bên trong Salesforce. Để đối phó với sự cố này, các đồng nghiệp Salesforce từ khắp nơi trong công ty đã tăng cường đội Heroku bằng mọi cách có thể. Nhóm Heroku và các đồng nghiệp của họ đã làm việc suốt ngày đêm, bao gồm cả đêm và cuối tuần. Nó thường là trong một cuộc khủng hoảng khi một đội thực sự đến với nhau, và nó đã được truyền cảm hứng để xem điều đó xảy ra ở đây.

Dựa trên cuộc điều tra của chúng tôi cho đến nay và công việc khó khăn của nhóm của chúng tôi, được hỗ trợ bởi một nhà cung cấp bảo mật bên thứ ba và các hệ thống phát hiện mối đe dọa rộng lớn của chúng tôi, chúng tôi không có bằng chứng về bất kỳ quyền truy cập trái phép nào vào các hệ thống Heroku kể từ ngày 14 tháng 4 năm 2022. Chúng tôi tiếp tục giám sát chặt chẽ các hệ thống của mình và liên tục cải thiện việc kiểm soát phát hiện và bảo mật để ngăn chặn các nỗ lực trong tương lai. Ngoài ra, chúng tôi không có bằng chứng cho thấy kẻ tấn công đã truy cập vào bất kỳ tài khoản khách hàng nào hoặc giải mã các biến môi trường của khách hàng.

Chúng tôi đã nghe phản hồi của bạn về thông tin liên lạc của chúng tôi trong sự cố này. Bạn muốn minh bạch hơn, thông tin chuyên sâu hơn và ít bài đăng "chúng tôi đang làm việc trên đó". Đó là một sự cân bằng khó khăn để tấn công. Trong khi chúng tôi cố gắng minh bạch, chúng tôi cũng phải đảm bảo rằng chúng tôi không đặt khách hàng của mình vào rủi ro trong một cuộc điều tra tích cực. Bài đăng trạng thái của chúng tôi vào ngày 5 tháng 5 năm 2022, là một phần trong nỗ lực của chúng tôi để có được sự cân bằng đúng. Dựa trên phản hồi của bạn, chúng tôi sẽ chỉ bắt đầu xuất bản khi chúng tôi có thông tin liên quan mới để chia sẻ. Sau khi sự cố được giải quyết, chúng tôi sẽ công bố chi tiết liên quan đến vụ việc để cung cấp một bức tranh đầy đủ hơn về hành động của kẻ tấn công.

Chúng ta biết rằng sự tích hợp giữa Heroku và GitHub là một phần của phép thuật sử dụng Heroku. Chúng tôi đã nghe to, nhiều và rõ ràng rằng bạn thất vọng vì chúng tôi đã mất bao lâu để kích hoạt lại tích hợp GitHub giúp đơn giản hóa quy trình triển khai của bạn. Chúng tôi hy vọng sẽ khôi phục lại sự tích hợp trong vài tuần tới, nhưng chúng tôi sẽ chỉ làm điều đó khi chúng tôi chắc chắn rằng việc tích hợp là an toàn và an toàn cho khách hàng của chúng tôi. Cho đến lúc đó, vui lòng dựa vào git push heroku hoặc một trong những cách tiếp cận thay thế sử dụng API tích hợp vào nền tảng của chúng tôi. Khi chúng tôi tiến hành thông qua phản hồi của chúng tôi, chúng tôi sẽ cung cấp thông tin cập nhật khi chúng có sẵn.

Chúng ta có thể tốt hơn, và chúng ta sẽ như vậy. Trong quá trình ứng phó với sự cố này, chúng tôi đã bổ sung đáng kể vào tình trạng an ninh tổng thể của chúng tôi. Chúng tôi sẽ làm việc để xây dựng lại niềm tin của bạn thông qua các thông tin liên lạc có ý nghĩa hơn và đưa việc tích hợp với GitHub trở lại trực tuyến.

Tôi có một sự nhiệt tình suốt đời cho các nhà phát triển và kinh nghiệm họ có cùng nhau xây dựng phần mềm, và tôi không thể vui mừng hơn khi trở thành một phần của gia đình Heroku khi chúng tôi lập biểu đồ khóa học của chúng tôi trong những năm tới. Nếu bạn muốn cung cấp cho tôi phản hồi trực tiếp, vui lòng liên hệ với tôi tại đây: www.linkedin.com/in/bobwise


Trước đó, vào ngày 5 tháng 5 năm 2022, kho GitHub của khách hàng có liên kết với Heroku và Travis CI đã bị tin tặc truy cập. Nguyên nhân chính có thể là do khóa xác thực được cấp cho hai đơn vị này đã bị lợi dụng trái phép. DBlog cũng đã có một bài viết cập nhật chính thức về vụ việc này. Theo đó, các kho lưu trữ GitHub của ngươì dùng (kể cả riêng tư) đã bị truy cập trái phép, cả NPM cũng bị ảnh hưởng. Cùng chờ xem những diễn biến mới, theo dõi DBlog ngay!