JavaRush /Blog Java /Random-VI /Nghỉ giải lao #35. Cách tuân thủ các quy tắc bảo mật của ...

Nghỉ giải lao #35. Cách tuân thủ các quy tắc bảo mật của GitHub. Lời khuyên hữu ích để gỡ lỗi mã Java nhanh chóng

Xuất bản trong nhóm

Cách giữ an toàn trên GitHub

Nguồn: DZone GitHub xứng đáng được coi là nền tảng phát triển nhóm phổ biến nhất. Theo dữ liệu từ mùa thu năm ngoái, hơn 40 triệu lập trình viên đã sử dụng dịch vụ này. Và vì hầu hết họ đều sử dụng nguồn mở để tạo phần mềm nên bảo mật khi làm việc trên Github phải là ưu tiên hàng đầu của bạn. Việc sử dụng lại mã làm tăng nguy cơ lây lan lỗ hổng. Điều này có nghĩa là mọi người dùng GitHub nên chú ý tối đa đến việc tạo môi trường phát triển an toàn. Nghỉ giải lao #35.  Cách tuân thủ các quy tắc bảo mật của GitHub.  Những mẹo hữu ích để debug code Java nhanh chóng - 1Có 8 quy tắc bạn cần tuân theo để giữ an toàn cho mã GitHub của mình.

Cung cấp kiểm soát truy cập

Kiểm soát quyền truy cập là một trong những cách tốt nhất để cải thiện bảo mật không chỉ trên GitHub mà còn trong bất kỳ môi trường nào khác yêu cầu bảo vệ mã. GitHub đưa ra một số cách để giảm thiểu rủi ro trong công việc của bạn. Đầu tiên, hãy thực hành cấp ít đặc quyền nhất—chỉ cấp cho người dùng kho những quyền mà họ cần để thực hiện công việc của mình. Có các phương pháp kiểm soát truy cập khác mà bạn nên tuân theo:
  • hạn chế tạo kho lưu trữ để ngăn chặn người dùng tiết lộ thông tin về tổ chức trong kho công cộng;
  • kích hoạt tính năng bảo vệ nhánh và kiểm tra trạng thái để người dùng có thể hợp nhất các cam kết hoặc quản lý các nhánh một cách an toàn;
  • Cho phép hoặc vô hiệu hóa việc phân nhánh các kho lưu trữ riêng tư để đảm bảo rằng người dùng không tiết lộ hoặc chia sẻ mã của bạn với người khác;
  • thu hồi quyền truy cập đối với tất cả người dùng không hoạt động không còn là thành viên trong cộng đồng của bạn hoặc nhân viên của công ty;
  • Kiểm tra định kỳ quyền truy cập vào các dự án của bạn trên GitHub;
  • Đảm bảo rằng người dùng không chia sẻ quyền truy cập hoặc mật khẩu tài khoản GitHub với người khác;
  • đảm bảo rằng mỗi người dùng kho lưu trữ sử dụng xác thực hai yếu tố trong tài khoản của họ;
  • Thay đổi mã thông báo truy cập cá nhân và khóa SSH định kỳ.

Không bao giờ lưu trữ dữ liệu truy cập trong tệp GitHub của bạn

Rò rỉ thông tin truy cập vào kho lưu trữ GitHub của bạn thông qua mã, tệp cấu hình hoặc thông báo cam kết có thể được sử dụng để tấn công. Để ngăn dữ liệu nhạy cảm được thêm vào kho lưu trữ của bạn, hãy sử dụng các công cụ kiểm soát truy cập như git-secrets hoặc vault . Những công cụ này quét cơ sở mã của bạn và thay đổi quyền truy cập bất cứ khi nào tìm thấy thông tin nhạy cảm trong mã hoặc tệp cấu hình của bạn. Nếu tìm thấy thông tin nhạy cảm trong kho GitHub của mình, bạn nên xóa nó ngay lập tức. Nhưng vì GitHub lưu giữ lịch sử của tất cả các cam kết trong kho lưu trữ của bạn nên chỉ xóa dữ liệu là không đủ. Bạn sẽ cần xóa các tệp khỏi lịch sử kho lưu trữ GitHub của mình. Một bước quan trọng để cải thiện tính bảo mật sẽ là thay thế tất cả mật khẩu và mã thông báo đã được công khai trước đây.

Bật cảnh báo cho các phần phụ thuộc dễ bị tổn thương

Khi người dùng GitHub làm việc trên nhiều dự án hơn, việc kiểm soát số lượng đối tượng phụ thuộc ngày càng trở nên khó khăn hơn. May mắn thay, GitHub cung cấp cảnh báo tự động cho các phần phụ thuộc dễ bị tổn thương được tìm thấy trong kho lưu trữ. Những cảnh báo này dựa trên Cơ sở dữ liệu về lỗ hổng bảo mật quốc gia (NVD), Tư vấn bảo mật GitHub và cơ sở dữ liệu về lỗ hổng WhiteSource, hỗ trợ hơn 200 ngôn ngữ lập trình. Cảnh báo GitHub giúp việc sử dụng thư viện nguồn mở trở nên dễ dàng và an toàn hơn.

Kiểm tra ứng dụng được thêm từ GitHub

GitHub Marketplace chứa hàng trăm ứng dụng được viết bởi các nhà phát triển và công ty bên thứ ba. Do đó, điều quan trọng là phải xem xét cẩn thận từng ứng dụng bạn thêm vào kho lưu trữ của mình. Khi cài đặt ứng dụng từ GitHub Marketplace, hãy làm theo các nguyên tắc sau:
  • Thực thi nguyên tắc đặc quyền tối thiểu. Không bao giờ cấp cho ứng dụng nhiều quyền truy cập hơn mức chúng yêu cầu;
  • Luôn đặt câu hỏi về quyền truy cập hoặc các quyền mà ứng dụng yêu cầu. Hãy suy nghĩ về thiệt hại mà điều này có thể gây ra với mức độ truy cập này;
  • Xác minh rằng công ty hoặc nhà phát triển ứng dụng thực sự tồn tại trước khi cấp cho họ quyền truy cập vào kho lưu trữ GitHub của bạn;
  • Kiểm tra chức năng và tính bảo mật của ứng dụng. Nếu nó chứa lỗ hổng, bạn có thể trở thành nạn nhân của hacker;
Tính bảo mật của một ứng dụng được đánh giá dựa trên phần yếu nhất của nó. Điều này cũng áp dụng cho kho GitHub. Vì vậy, trước khi bạn cấp cho một ứng dụng quyền truy cập vào bộ nhớ của mình, hãy đảm bảo rằng bạn tin tưởng ứng dụng đó và ứng dụng đó phù hợp với cấp độ truy cập mà nó yêu cầu.

Kiểm tra tất cả mã được nhập từ GitHub

Các nhà phát triển thường sử dụng mã của người khác. Mỗi khi bạn sao chép một phần mã của người khác vào dự án của mình, hãy tiến hành xem xét toàn bộ mã đó. Điều này có vẻ lãng phí thời gian, đặc biệt đối với các dự án nhỏ, nhưng có khả năng là nếu bỏ qua quy tắc này, bạn sẽ tạo ra một lỗ hổng trong kho lưu trữ của mình. Một rủi ro khác liên quan đến mã được nhập là nó có thể chứa thông tin nhạy cảm như dữ liệu truy cập. Nếu chúng được lưu trữ trong tệp GitHub, điều này sẽ tạo ra một rủi ro bảo mật khác. Kiểm tra mã trước khi sao chép nó giúp xác định những sơ hở như vậy. Đừng cho rằng mã của người khác là an toàn vì nó nằm trong kho lưu trữ riêng tư. Nó rất có thể gây hại cho cơ sở mã của bạn.

Sử dụng phân tích mã nguồn tĩnh tự động cho kho lưu trữ của bạn

Có một số công cụ của bên thứ ba mà bạn có thể sử dụng để phân tích kho lưu trữ của mình để tìm lỗ hổng. Một trong số đó là WhiteSource Bolt , một công cụ miễn phí từ GitHub Marketplace. WhiteSource Bolt quét kho lưu trữ của bạn để tìm lỗ hổng trong tất cả các mã bị lộ. Nó cũng cung cấp thông tin chi tiết về các lỗ hổng và đề xuất các phương án khắc phục.

Sử dụng gói GitHub phù hợp với nhu cầu của bạn

Nhiều công ty có chính sách ngăn nhà phát triển đăng mã lên các nền tảng như GitHub. Những hạn chế này đặc biệt phổ biến ở các cơ quan chính phủ và tổ chức tài chính. Nếu bạn làm việc trong môi trường được quản lý chặt chẽ, hãy sử dụng GitHub Enterprise , một gói doanh nghiệp cho phép bạn lưu trữ các kho lưu trữ trên máy chủ cục bộ. Điều này cung cấp mức độ bảo mật cao hơn vì nó cho phép các nhà phát triển của công ty có quyền truy cập vào tất cả các dự án mà không phải lo lắng về người dùng GitHub trái phép.

Thực hiện theo chính sách bảo mật toàn diện trong các dự án của bạn

An toàn là trách nhiệm tập thể. Nếu bạn làm việc theo nhóm, điều quan trọng là phải thiết lập các quy tắc an toàn mà tất cả các bên liên quan phải tuân theo. Tốt nhất, bạn nên tập hợp các nhóm phát triển và an ninh mạng lại với nhau trong giai đoạn lập kế hoạch để đảm bảo chúng hoạt động đồng bộ. Điều này sẽ giúp dễ dàng hơn trong việc đảm bảo bảo vệ trong quá trình phát triển. Nếu một trong các thành viên trong nhóm của bạn bất cẩn trong việc lưu trữ mật khẩu hoặc thông tin nhạy cảm khác, điều đó có thể khiến toàn bộ kho lưu trữ gặp rủi ro. Để tránh điều này, hãy ghi lại rõ ràng quy trình an toàn mà tất cả đồng nghiệp của bạn phải tuân theo.

Phần kết luận

Bảo mật mã của bạn trên GitHub thật dễ dàng. Bạn chỉ cần đảm bảo kiểm soát quyền truy cập phù hợp, tận dụng các tính năng bảo mật tích hợp của GitHub. Nếu bạn quan tâm đến khả năng bảo vệ tối đa, hãy tích hợp các công cụ bổ sung để tăng cường bảo mật mã ở mọi giai đoạn phát triển. Chúng tôi cũng khuyên bạn nên xem lại phần Bảo mật GitHub dành cho doanh nghiệpNgười dùng miễn phí trong tài liệu . Bằng cách này, bạn có thể nhận được thông tin bổ sung về bảo mật và bảo vệ mã.

Lời khuyên hữu ích để gỡ lỗi mã Java nhanh chóng

Nguồn: Hackernoon Ngoài việc viết mã hiệu quả, việc gỡ lỗi tốt hơn là một trong những điều hữu ích nhất bạn có thể làm để giúp cuộc sống của bạn trở nên dễ dàng hơn với tư cách là nhà phát triển Java. Điều này đặc biệt quan trọng trong điều kiện phát triển phần mềm hiện đại, nơi thế giới phần mềm đang tích cực hướng tới kiến ​​trúc phân tán và mã không đồng bộ. Nghỉ giải lao #35.  Cách tuân thủ các quy tắc bảo mật của GitHub.  Những mẹo hữu ích để debug code Java nhanh chóng - 2Mặc dù lỗi phần mềm là không thể tránh khỏi nhưng chúng ngày càng khó phát hiện và sửa chữa trong các bản dựng phức tạp. Và khi chuyển sang giai đoạn phát hành sản phẩm, quá trình gỡ lỗi càng trở nên nghiêm trọng hơn. Thật không may, không có cách nào để tránh điều này - việc gỡ lỗi là cần thiết. Để giúp bạn, tôi quyết định chia sẻ một số mẹo hữu ích để gỡ lỗi ứng dụng Java ở các giai đoạn phát triển khác nhau.

Sử dụng điểm kiểm soát

Hãy bắt đầu với các điểm dừng, một điểm rõ ràng nhưng rất quan trọng làm nền tảng cho bất kỳ quá trình gỡ lỗi nào. Điểm kiểm tra cho phép bạn dừng việc thực thi một ứng dụng để bạn có thể phân tích trạng thái của chương trình và tìm ra lý do tại sao mã không hoạt động chính xác. Mỗi trình gỡ lỗi cung cấp một số tùy chọn điểm dừng, bao gồm điểm dừng có điều kiện, điểm dừng ngoại lệ, điểm theo dõi và điểm theo dõi. Tìm hiểu cách thức và thời điểm sử dụng các loại điểm dừng khác nhau có thể giúp quá trình gỡ lỗi diễn ra suôn sẻ hơn. Điều đáng nói là một số công cụ hiện đại hỗ trợ các điểm kiểm tra mà không làm gián đoạn ứng dụng. Điều này giúp bạn có thể đặt điểm trong mã của mình và thu thập dữ liệu gỡ lỗi mà không cần dừng việc thực thi chương trình.

Hiển thị cấu trúc logic

Tính năng hiển thị cấu trúc logic rất hữu ích khi theo dõi nội dung trong các lớp Java. Nếu tính năng này được bật, danh sách biến sẽ hiển thị một mảng, điều này hữu ích hơn nhiều trong bối cảnh gỡ lỗi. Điều này rất thuận tiện, đặc biệt nếu mã của bạn thiếu phương thức toString() cho đối tượng. Chế độ xem biến cũng cho phép bạn thay đổi trực tiếp giá trị của biến trong khi gỡ lỗi. Điều này có thể tiết kiệm một lượng thời gian đáng kể do không phải khởi động lại phiên gỡ lỗi với dữ liệu đầu vào đã thay đổi.

Tìm hiểu cách điều hướng cơ sở mã

Bất kỳ trình gỡ lỗi Java nào cũng có thể sử dụng một số hàm cho phép bạn điều hướng qua các phần mã khác nhau trong khi gỡ lỗi. Một số trong số chúng bao gồm "chạy đến hàng", "bước qua", "bước vào" và "bước vào". Ngoài những điều này, hãy xem xét thêm hai lựa chọn:
  1. Thả vào khung - Chức năng này được sử dụng để quay lại một điểm trong khung ngăn xếp của bạn. Nếu bỏ lỡ một điểm và cần quay lại, bạn chỉ cần sử dụng chức năng Thả vào khung.
  2. Lọc bước - cho phép bạn bỏ qua các gói nhất định trong quá trình gỡ lỗi. Bạn không cần phải điều hướng qua tất cả các lớp trong hệ thống JDK khi bạn có thể chỉ cần lọc ra những loại bạn không cần.
Để cải thiện tốc độ điều hướng mã của bạn, bạn cần nắm vững các tổ hợp phím chức năng:
  • F5 - cho “bước vào”.
  • F6 - cho “bước qua”.
  • F7 - cho "quay lại bước".
  • F8 - để chạy đến trạm kiểm soát tiếp theo.
Mặc dù các phím nóng có thể khác nhau giữa các IDE nhưng nếu bạn nhớ chúng, nó sẽ giúp bạn không phải sử dụng chuột thường xuyên hơn.

Học cách tránh bế tắc

Kịch bản bế tắc xảy ra khi hai hoặc nhiều luồng chặn sau khi hình thành phụ thuộc vòng tròn. Vì một tập hợp các luồng Java thường chờ tài nguyên khác nên điều này có thể khiến ứng dụng dừng hoàn toàn. Việc gỡ lỗi các bế tắc jstack có thể khá khó khăn vì chúng không hiển thị các chỉ báo sự cố như tăng đột biến bộ nhớ, tải CPU, v.v. Có nhiều cách tiếp cận khác nhau để khắc phục tình trạng bế tắc jstack. Trước tiên, bạn có thể nắm bắt nhiều kết xuất luồng trong cụm JVM của mình để suy ra các mẫu luồng. Trong trường hợp này, việc phân tích kết xuất luồng tĩnh có thể là không đủ. Tùy thuộc vào kích thước của cụm JVM, có thể cần phải rà soát nhiều tệp, đây thường là một quá trình tốn nhiều công sức và thời gian. Tốt nhất nên sử dụng giải pháp giám sát ứng dụng cung cấp lớp liên kết và lớp mã cần thiết để cách ly các khóa chết của luồng. May mắn thay, có những công cụ cải tiến có thể giúp giải quyết tình huống này, bao gồm một số trình gỡ lỗi hiện đại cũng như các công cụ APM thương mại. Những công cụ này làm tăng tính minh bạch của mã Java của bạn trong khi xác định lỗi.

Tận dụng sức mạnh của trình gỡ lỗi sản xuất

Quy trình gỡ lỗi điển hình mà hầu hết các nhà phát triển thường tuân theo bao gồm việc sao chép môi trường, cách ly lỗi và sau đó sửa nó. Tuy nhiên, điều này không áp dụng trong mọi trường hợp. Nếu rơi vào trường hợp này, nhà phát triển nên sử dụng trình gỡ lỗi sản xuất mạnh mẽ. Rookout là một trong những công cụ như vậy. Nó cho phép bạn thu thập dữ liệu gỡ lỗi từ các ứng dụng mà không thay đổi trạng thái hoặc kiểm soát luồng của nó. Với Rookout, bạn có thể đặt các điểm dừng không phá vỡ để có được dấu vết ngăn xếp đầy đủ, ghi lại các biến trực tiếp hoặc bất kỳ dữ liệu ứng dụng nào khác cần thiết để gỡ lỗi. Vì vậy, thay vì sử dụng các giải pháp giám sát chi phí cao để gỡ lỗi sản xuất, bạn chỉ cần sử dụng Rookout, giải pháp này cung cấp mọi thứ bạn cần để gỡ lỗi ứng dụng mà không cần triển khai lại hoặc viết mã mới. Cho dù bạn đang làm việc trên các ứng dụng phía máy chủ hay ứng dụng được đóng gói trong vùng chứa, Rookout là một sự bổ sung tuyệt vời cho kho vũ khí gỡ lỗi của bạn.

Đừng quên gỡ lỗi từ xa

Phần lớn các IDE, chẳng hạn như NetBeans, Eclipse, IntelliJ IDEA và Visual Studio, đều hỗ trợ gỡ lỗi từ xa, một kỹ thuật cho phép bạn sửa mã Java nằm trên một máy tính khác. Điều này đặc biệt quan trọng trong trường hợp hệ thống của bạn không hỗ trợ gỡ lỗi cục bộ hoặc khi máy tính của bạn không có đủ tài nguyên để chạy trình gỡ lỗi. Để thực hiện gỡ lỗi từ xa, bạn phải cung cấp thông tin cấu hình mà trình gỡ lỗi sẽ sử dụng để kết nối với cổng từ xa. Gỡ lỗi từ xa cũng hữu ích trong các tình huống khắc phục sự cố trong đó các nhà phát triển bên ngoài trang web cần kết nối với ứng dụng để sửa lỗi. Hãy nhớ rằng đôi khi việc gỡ lỗi có thể mất nhiều thời gian hơn việc triển khai thực tế. Khi bạn trau dồi kỹ năng sửa lỗi Java của mình, hãy luôn cố gắng viết mã rõ ràng, hiệu quả—việc sửa lỗi sẽ mang lại kết quả. Nếu bạn cảm thấy mọi thứ đang vượt quá tầm kiểm soát, bạn nên nghỉ ngơi một chút. Lỗi là một câu đố lập trình và nhiều lập trình viên đã tìm cách giải quyết vấn đề này mà không cần đến gần máy tính của họ. Sử dụng các chiến lược được mô tả ở trên để loại bỏ các vấn đề gỡ lỗi Java. Chúc mừng mã hóa!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION