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 →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 →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ả 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 →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Thông thường, chúng ta sẽ không sử dụng trang login mặc định của Spring Security cho các ứng dụng được deploy lên production, nguyên nhân vì sao các bạn cũng có thể đoán được đúng không? Trang login mặc định này để chúng ta learning là chủ yếu. Vậy để thay thế trang login mặc định này, chúng ta sẽ làm như thế nào? Trong bài viết này, mình sẽ hướng dẫn các bạn làm điều này. Xem thêm Việc làm IT hấp dẫn trên TopDev [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"] Đầu tiên, mình sẽ tạo mới một Spring Boot với Spring Security, Spring Web và Thymeleaf dependencies. Kết quả như sau: Chạy ví dụ này, các bạn sẽ thấy trang login mặc định của Spring Security như sau: Bây giờ, mình sẽ sử dụng Bootstrap để viết custom login page. [...]
Read more →Bài viết được sự cho phép của blogchiasekienthuc.com Chắc hẳn nhiều bạn ở đây đã biết về xác thực 2 yếu tố (2FA, xác thực 2 lớp hay còn gọi là Two-Factor Authentication) rồi đúng không ! Chắc chắn là như vậy rồi, nếu bạn đã sử dụng Internet, đã tham gia vào các MXH như Facebook, Instagram, hay các dịch vụ mạng và các tài khoản ngân hàng trực tuyến thì việc xác thực 2 yếu là điều bắt buộc trong việc bảo mật thông tin tài khoản. [irp posts="38148" name="Bảo mật ứng dụng Java web bởi Spring Security"] [irp posts="31259" name="Cybersecurity: Khám phá những sự thật bất ngờ về ngành an ninh mạng tại Việt Nam"] Hiểu nôm na là khi bạn đăng nhập vào một website, hay đăng nhập một tài khoản/ ứng dụng trực tuyến thì ngoài việc nhập mật khẩu theo cách truyền thống ra thì sẽ có một mã xác thực OTP được gửi về Số điện thoại, Email [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Mình đã giới thiệu với các bạn cách cài đặt và cấu hình để sử dụng Spring Security trong các ứng dụng Spring MVC. Với Spring Boot application, thì việc cấu hình Spring Sẹcurity sẽ đơn giản hơn rất nhiều. Chúng ta không cần phải làm từng step để cấu hình cho phần authentication và authorization của ứng dụng. Spring Boot hỗ trợ chúng ta giảm bớt rất nhiều thao tác với những cấu hình mặc định cho Spring Security. Cụ thể như thế nào? Mình sẽ chia sẻ với các bạn một số kiến thức về Spring Security trong Spring Boot application các bạn nhé! [irp posts="38148" name="Bảo mật ứng dụng Java web bởi Spring Security"] [irp posts="37261" name="Cài đặt Spring Boot CLI"] Đầu tiên, mình sẽ tạo mới một Spring Boot application: với Spring Web và Spring Security dependencies như sau: Kết quả: Ngay lúc này, các bạn chạy ứng dụng lên rồi request tới đị [...]
Read more →Bài viết được sự cho phép của BQT Kinh nghiệm lập trình Trong bài trước mình đã giới thiệu tới các bạn cách cài đặt FTP Server trên Windows Server. Tuy nhiên không ít người trong chúng ta ngay sau khi setup xong lại không thể download được file từ FTP Server xuống. Chúng ta có thể gặp lỗi như sau: [irp posts="2514" name="10 lời khuyên để giảm thiểu mối đe doạ an ninh nội bộ"] [irp posts="38966" name="Fix Lỗi RDP Authentication Error Has Occurred – The Function Requested Is Not Supported""] Current security settings do not allow this file to be downloaded. Fix lỗi trên bằng cách nào? Nguyên nhân của lỗi trên là do cài đặt bảo mật trên máy chủ. Do đó chúng ta sẽ cùng thay đổi cấu hình Internet Options. Ấn phím Windows + S, sau đó gõ “internet options” Chuyển qua Security tab. Chọn Internet và click vào Custom level Màn hình cài đặt chi tiết sẽ hiển thị ra. Lướt xuống phần Downloads và tích chọn Enable File download và Font download. Sau khi thực hiện xong, ấn [...]
Read more →Bài viết được sự cho phép của tác giả Kiên Nguyễn 1. Firebase security là gì? Firebase Security là phần đứng giữa data và user trong ứng dụng. Không phải ngẫu nhiên mà Google thêm nội dung này vào Firebase. Trước đây, muốn thực hiện bảo mật hoặc phân quyền cho database cần nhiều thời gian để thực hiện. Đối với các ứng dụng lớn và phân quyền phức tạp, người ta còn viết ra cả một service riêng để check permission. Đã thiết kế vậy đòi hỏi phải thiết kế DB, nếu chưa biết có thể tham khảo các bài viết về antipattern khi thiết kế DB tại đây. [irp posts="3216" name="Firebase là gì ? Có nên dùng cho các ứng dụng lớn?"] [irp posts="2519" name="Firebase & 5 nhầm lẫn tai hại thường gặp"] Nhưng với các ứng dụng nhỏ, không quá phức tạp thì sao?. Đấy, lúc đấy Firebase Security trở nên đơn giản, gọn nhẹ. Nhờ vào tính flexible (linh động) và independent (độc lập), firebase database nó [...]
Read more →