Bài viết được sự cho phép của tác giả Võ Doãn Thành 1. Cuộc trò truyện với ông anh Nói về security thì có vô vàng các vấn đề mà có thể gặp phải trong quá trình phát triển ứng dụng hoặc xây dựng cơ sở hạ tầng. Ứng dụng của bạn càng có nhiều lớp bảo vệ thì "có thể" việc giúp an toàn thông tin cho người dùng càng cao và tăng độ tin cậy của người dùng với ứng dụng. Mình nói "có thể" tức việc hiểu và tận dùng các lớp bảo mật chỉ giúp ứng dụng có thêm nhiều lớp chắn không có nghĩa là an toàn được 100%. Vì giờ các pháp sư hacker rất là chuyên nghiệp. Hổm mình có nói chuyện với ông anh làm chung. Ảnh thì chuyên làm về security. Ảnh kể cho mình nghe 1 tràng ý như thế này. Mục đích việc hiểu về security (cả về lý thuyết và phướng án phòng chống) không [...]
Read more →Công nghệ phát triển hướng đến giải quyết và cải tiến cho mỗi quy trình, hoạt động của doanh nghiệp cũng như đời sống. Đối với lĩnh vực tuyển dụng, sự xuất hiện của phần mềm ATS (Applicant Tracking System) mang đến nhiều thay đổi đáng kể, cả đối với nhà tuyển dụng và ứng viên. Vậy phần mềm ATS là gì? Chúng được sử dụng ra sao? Những thắc mắc về phần mềm ATS trong tuyển dụng sẽ được TopDev giải đáp tại bài viết dưới đây. [caption id="attachment_56927" align="aligncenter" width="1200"] Hệ thống sàng lọc ứng viên ATS (Applicant Tracking System)[/caption] Applicant Tracking System là gì? Applicant Tracking System (ATS) hay còn gọi là Hệ thống quản lý hồ sơ ứng viên là phần mềm quản lý quy trình tuyển dụng từ đầu đến cuối một cách tự động hóa. ATS được thiết kế để giúp nhà tuyển dụng tiết kiệm thời gian và chi phí trong việc thu thập, sắp xếp và sàng lọc hồ sơ cá [...]
Read more →Bài viết đến từ anh Lê Văn Tám - Senior Cloud Engineer Cloud Architect team @Techcombank Như các bạn đã biết, tại Techcombank, đã có rất nhiều ứng dụng được di chuyển lên Cloud. Mỗi ứng dụng phục vụ các nhóm đối tượng mục tiêu khác nhau bao gồm nhân viên nội bộ ngân hàng (internal users) hoặc khách hàng sử dụng sản phẩm dịch vụ của Techcombank (external users). Trên AWS cloud, các nguồn lực như EC2, RDS… sẽ tính phí dựa theo thời gian hoạt động. Đối với môi trường production, các ứng dụng này sẽ chạy liên tục 24/7. Tuy nhiên, đối với môi trường non-production (dev, sit, uat, pre-prd …), tùy theo mục đích sử dụng, chúng sẽ được bật/tắt trong khoảng thời gian nhất định để giảm chi phí. Thời gian đầu, quá trình bật/tắt các ứng dụng được thực hiện thủ công. Tức là, khi đội ngũ phát triển cần kích hoạt ứng dụng, sẽ truy cập vào AWS Console để bật [...]
Read more →Bài viết được sự cho phép bởi tác giả Sơn Dương CSP là gì Content Security Policy (CSP) là một lớp bảo mật bổ sung giúp phát hiện và giảm thiểu một số loại tấn công nhất định, bao gồm cả tấn công Cross-Site Scripting (XSS) và dữ liệu. Các cuộc tấn công này được sử dụng cho mọi thứ, từ đánh cắp dữ liệu, làm mất mặt trang web, đến phân phối phần mềm độc hại. Cách hoạt động của CSP Khi máy chủ phản hồi trong header với thẻ Content-Security-Policy hoặc một thẻ <meta> trong HTML Document như: <meta http-equiv="Content-Security-Policy" content="default-src 'self'"> thì ngay lập tức trình duyệt hỗ trợ sẽ kích hoạt các biện pháp bảo vệ người dùng bằng cách hạn chế việc tải và thực thi các tài nguyên như Javascript, CSS, iframe, Web Worker, fonts… Ví dụ thẻ <meta> trên tương đương với việc đặt thuộc tính Content-Security-Policy sau vào trong header của phản hồ [...]
Read more →Vấn đề bảo mật luôn là một thách thức lớn cho các công ty, tổ chức hiện nay; vì thế các công ty IT luôn ưu tiên tìm kiếm vị trí Security Engineer có kinh nghiệm với mức đãi ngộ cao. Bài viết hôm nay chúng ta cùng nhau tìm hiểu những câu hỏi phỏng vấn vị trí Security Engineer thường gặp nhé. 1. Công việc của một Security Engineer là gì? Security Engineer – kỹ sư bảo mật hay Security Specialist – chuyên gia bảo mật là một công việc giúp bảo vệ hệ thống máy tính khỏi các tấn công từ bên ngoài và đề phòng, hạn chế, khắc phục những lỗi xảy ra từ bên trong. Việc bảo mật trong một tổ chức bao gồm nhiều lĩnh vực như mạng (network), thông tin (information), hệ thống (system),… và nhiều vai trò công việc như khắc phục sự cố (Ttroubleshooting), quản trị (administration), phân tích (analyst), kiểm tra (testing),… Công việc của mộ [...]
Read more →Bài viết được sự cho phép của tác giả Lê Nhật Thanh Có một câu nói cực kì nổi tiếng trong thế giới hacker. “Không có một hệ thống nào là an toàn tuyệt đối”. Website của bạn cũng vậy, là một hệ thống thì luôn luôn có lỗ hổng bảo mật. Trong series web security này, bạn sẽ được học về những thứ cơ bản nhất trong thế giới security. Vì lý do đó, một lập trình viên phải biết những kĩ thuật đơn giản để bảo mật cho một website. Trong bài viết này, bạn sẽ học cách để giữ cho người dùng, nội dung, và mọi thứ trên website bạn được an toàn và bảo mật. #1 Giới thiệu về Security hay Web Security Trước khi bắt đầu bài, mình muốn hỏi bạn một câu hỏi. Khi nhắc tới chữ “security”, bạn sẽ tưởng tượng gì trong đầu? Hackers? Tấn công? Phòng thủ? Một hacker trong một phòng tối và đang mặc [...]
Read more →Hai chương trình Thạc sĩ Trí tuệ Nhân tạo (AI) và Thạc sĩ An toàn Thông tin (Cyber Security) sẽ được đại học RMIT Việt Nam đưa vào giảng dạy từ tháng 6 năm 2022. Đây cũng là lần đầu tiên nhà trường ra mắt hai chương trình Thạc sĩ chuẩn quốc tế cho khối ngành STEM (Khoa học, Công nghệ, Kỹ thuật và Toán học). Không chỉ được công nhận toàn cầu, mỗi chương trình đều mang những dấu ấn và những đặc thù riêng, đáng để tìm hiểu trước khi chọn lựa hướng đi cho tương lai. Chương trình Thạc sĩ Trí tuệ Nhân tạo được thiết kế cho những ai có mong muốn tập trung và đào sâu vào những ứng dụng của AI nhằm thúc đẩy sự phát triển của công nghệ. Chương trình có 3 khối kiến thức chính: thiết kế và phát triển AI, học máy/ học sâu và khoa học dữ liệu. Trong bối cảnh tăng trưởng [...]
Read more →Hơn 12 năm vận hành và phát triển tại Việt Nam, Home Credit không ngừng ứng dụng công nghệ nhằm giúp khách hàng “Dự định trong tầm tay - Sống vui thêm mỗi ngày”. Và tối ưu hóa trải nghiệm của người dùng trên ứng dụng di động là một phần quan trọng trong việc hiện thực hóa mục tiêu thay đổi cách thế giới mua sắm. Tham gia ngay sự kiện “Tech Talk: The Evolution of Scalable Mobile Application Development at Home Credit Vietnam” để tìm hiểu về cách vận hành team và cách triển khai các công nghệ mới mà các chuyên gia công nghệ tại Home Credit đã và đang sử dụng trong việc phát triển ứng dụng di động cho hàng triệu người dùng. Thời gian: 02/12/2021 | 18:30 - 20:00 Hình thức: Sự kiện trực tuyến qua Zoom Ngôn ngữ: Tiếng Việt và tiếng Anh Đăng ký: bit.ly/HomeCreditTechTalk Nhận được gì khi tham gia sự kiện? Tham gia sự kiện “The Evolution of Scalable Mobile Application Development at Home Credit Vietnam”, [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Resource Server trong OAuth2 được sử dụng để protect việc truy cập đến các resources, APIs. Nó sẽ validate access token được truyền bởi Client Application, với Authorization Server để quyết định xem liệu Client Application có quyền access tới các resources, APIs mà nó muốn hay không? Trong bài viết này, mình hướng dẫn các bạn cách hiện thực OAuth Resource Server sử dụng Spring Security OAuth2 Resource Server các bạn nhé! [irp posts="41385" name="Authorization Code grant type với Proof Key for Code Exchange (PKCE) trong OAuth 2.1"] [irp posts="40402" name="Giới thiệu về OAuth"] Xem thêm các chương trình tuyển dụng Spring trên TopDev Đầu tiên, mình sẽ tạo mới một Spring Boot project với Spring Web, Spring Security OAuth2 Resource Server để làm ví dụ: Kết quả: Đầu tiên, mình sẽ tạo mới một RESTful API đóng vai trò là resource mà chúng ta cần resource server protect. Nội dung của API này đơn giản như sau: package com.huongdanjava.springsecurity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation. [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết Tổng quan về quy trình xử lý request trong Spring Security, mình đã giới thiệu sơ qua với các bạn về các thành phần chính trong một flow cho phần authentication của Spring Security framework. Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết hơn về cách Spring Security handle phần authentication như thế nào các bạn nhé! [irp posts="44759" name="Bean, ApplicationContext, Spring Bean Life Cycle và Component scan"] [irp posts="4199" name="API Authentication trong Laravel-Vue SPA sử dụng Jwt-auth"] Xem thêm các chương trình tuyển dụng Spring trên TopDev Đầu tiên, mình sẽ tạo mới một Spring Boot project với Spring Security Starter and Spring Web Starter để làm ví dụ. Kết quả như sau: Như mình đã nói trong bài viết Tổng quan về quy trình xử lý request trong Spring Security, class AuthenticationManager sẽ là class đảm nhận việc authentication trong Spring Security: Request sau khi đi qua AuthenticationFilter, thông tin đăng nhập của user sẽ được convert sang đối tượng Authentication với implementation là class [...]
Read more →Bài viết được sự cho phép của tác giả Lê Chí Dũng 1. Bean là gì? Trong documentation của Spring framework, thì bean được định nghĩa như sau: In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container. Nói một cách đơn giản, bean là những module chính của chương trình, được tạo ra và quản lý bởi Spring IoC container. Các bean có thể phụ thuộc lẫn nhau, như ví dụ về Car, Engine và ChinaEngine từ đầu series tới giờ. Sự phụ thuộc này được mô tả cho IoC biết nhờ cơ chế Dependency injection. Lúc này chỉ cần biết đơn giản nhất là dùng @Component lên class là class đó là một bean. [irp posts="38148" name="Bảo mật ứng dụng Java web bởi Spring Security"] [irp posts="36724" name="Cách sử dụng properties trong tập tin cấu hình của Spring"] Xem thêm nhiều việc làm Spring lương cao trên TopDev 2. ApplicationContext là gì? ApplicationContext là khái niệm Spring Boot dùng để chỉ Spring IoC container, tươ [...]
Read more →Bài viết được sự cho phép của tác giả Trần Hữu Cương Sự khác nhau giữa file application với bootstrap trong Spring Phân biệt sự khác nhau giữa 2 file cấu hình là application.properties với bootstrap.properties hoặc application.yml với bootstrap.yml. Khi nào thì sử dụng file cấu hình application, khi nào thì sử dụng file cấu hình bootstrap? 1. File application.properties / application.yml dùng để làm gì? File application.properties hoặc application.yml được dùng để cấu hình application context (ngữ cảnh ứng dụng) Khi ứng dụng Spring Boot được khởi động, nó sẽ tạo một application context mà không cần phải chỉ định 1 cách rõ ràng (tự động cấu hình). Đó là nguyên nhân vì sao khi sử dụng spring boot bạn phải cấu hình rất ít. [irp posts="38148" name="Bảo mật ứng dụng Java web bởi Spring Security"] [irp posts="36724" name="Cách sử dụng properties trong tập tin cấu hình của Spring"] Xem thêm nhiều việc làm Spring lương cao trên TopDev Ngoài việc sử dụng file application.properties hoặc application.yml thì [...]
Read more →Bài viết được sự cho phép của tác giả Kiên Nguyễn Trước tiên, nếu bạn nào chưa có cái nhìn qua về cookies thì có thể tham khảo bài viết này. Cookies thật sự rất hữu ích, thuận tiện khi sử dụng nhưng cũng tồn tại không ít rủi ro. Bài viết sau đây giúp tìm hiểu rõ thêm về 2 thuộc tính giúp bảo vệ cookies là httponly và secure. [irp posts="1079" name="Bí kíp tạo website nhờ vào GitHub và Cloudflare"] [irp posts="34799" name="Cách gỡ bỏ Adobe Flash. Tại sao Flash bị Adobe khai tử?"] Http cookies – tiện lợi nhưng không hề an toàn. 1. Httponly Flag. 1.1 Ngày buồn khi mất cookies. Chuyện kể rằng: 30/2/2001, một ngày đẹp trời, không nắng, cũng méo mưa, thằng XXX (mean Tèo, Toàn, … not porn) lưới web thì thấy trang https://ZZZ.com. Với chút kiến thức hèn mọn, khi thấy website có sử dụng SSL thì XXX yên tâm lắm, login ngay. Ọt, ọt, ọt, tẹt, tẹt, tẹt, server [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong các dự án thực tế, các bạn sẽ gặp những trường hợp mà ứng dụng cần thiết phải sử dụng 2 cách login khác nhau tuỳ theo role của user, ví dụ như có những ứng dụng sẽ cần user bình thường login sử dụng token hoặc QR code, còn admin thì login sử dụng username, password. Để hiện thực multiple login page sử dụng Spring Security như thế nào? Mình sẽ hướng dẫn các bạn trong bài viết này các bạn nhé! [irp posts="38148" name="Bảo mật ứng dụng Java web bởi Spring Security"] [irp posts="36724" name="Cách sử dụng properties trong tập tin cấu hình của Spring"] Ứng dụng ví dụ Đầu tiên, mình sẽ tạo mới một Spring Boot project với Spring Security Starter, Spring Web Starter, Thymeleaf Starter: và WebJars với Bootstrap dependency để làm ví dụ như sau: <dependency> <groupId>org.webjars</groupId> <artifactId>webjars-locator-core</artifactId> </dependency> <dependency> <groupId>org.webjars</groupId> & [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Như mình đã nói trong bài viết về Tổng quan về quy trình xử lý request trong Spring Security, class UsernamePasswordAuthenticationFilter là filter sẽ đảm nhận việc authentication trong Spring Security và mặc định thông tin username và password của user sẽ được sử dụng cho quá trình authentication này. Trong các dự án thực tế thì các bạn có thể gặp những yêu cầu đăng nhập không cần sử dụng password mà sử dụng một thông tin khác như token hay một thông tin gì đó chẳng hạn… Trong các trường hợp này, chúng ta sẽ cần sử dụng một custom authentication filter để thay thế logic mặc định của Spring Security. Cụ thể như thế nào? Trong bài viết này, mình sẽ hướng dẫn các bạn cách hiện thực một custom authentication filter trong Spring Security cho trường hợp login không cần password các bạn nhé! [irp posts="38148" name="Bảo mật ứng dụng Java web bởi Spring Security"] [irp posts="36724" name="Cách sử dụ [...]
Read more →