Introduction Lazy Collection là một tính năng mới của Laravel được giới thiệu trong phiên bản 6.0. Đây là một sự bổ sung cho tính năng Collection vô cùng hữu ích đã có trước đó của Laravel cho phép ta giảm thiểu bộ nhớ sử dụng. Vì là một tính năng mới, hiện các tài liệu về Lazy Collection vẫn còn hạn hẹp nên mình xin phép góp vui một bài viết đi vào tìm hiểu về Lazy Collection và có một cái...
PHP collection Laravel MayFest Lazy CollectionGiới thiệu Mới đây Google đã giới thiệu đến với cộng đồng Android trên toàn thế giới Navigation Architecture Component, nó như một phần của Android Jetpack và gói AndroidX nhằm mục đích đơn giản hoá việc triển khai của điều hướng trong ứng dụng Android của bạn. Thành phần này và các nguyên tắc của nó cung cấp một cái nhìn mới về cách triển khai điều hướng, bao gồm đề xuất sử dụng...
MayFest MobileTeam EducationHôm nay chúng ta sẽ tìm hiểu về CBC, tại mode này, khối text đầu tiên sẽ được XOR với một khối Initialization vector (viết tắt là iv) rồi mới mã hóa ra bản mã. Các khối text phía sau sẽ được XOR với bản mã của khối text đằng trước nó sau đó mới mã hóa và cuối cùng các bản mã ghép lại với nhau như ở hình bài trước. Hôm nay mình sẽ giới thiệu về 1 bài trên cryptohack về CBC. Link:...
MayFestI. Khái niệm DOM và VDOM DOM: Viết tắt của Document Object Model, tạm dịch là mô hình các đối tượng tài liệu. DOM được dùng để truy xuất và thao tác trên các tài liệu có cấu trúc dạng HTML hay XML bằng các ngôn ngữ lập trình thông dụng như Javascript, PHP,… Tất cả các thẻ HTML đều được quản lý trong đối tượng document. Ở javascript để thao tác với các thẻ html chúng ta phải sử dụng đối...
React js MayFestRef trong React Component là gì ? Ref được sử dụng để lấy tham chiếu đến một node DOM(Document Object Model) hoặc có thể là một thể hiện của một component trong một ứng dụng React, tức là ref sẽ về một node mà chúng ta tham chiếu đến khi render xong cây dom. Trong react chúng ta thường sử dụng state thể thay đổi đổi DOM ảo, React không khuyến khích thay đổi DOM thật nhưng trong 1 số trường hợp sau...
React js MayFestAES là một loại block cipher (mã hoá từng khối dữ liệu). Trong AES lại chia ra thành các mode mã hóa như ECB, CBC, CTR,... Bài hôm nay mình sẽ nói rõ hơn về ECB, cách mã hóa và các lỗ hổng tồn tại xung quanh mode này (mà mình đã tìm hiểu được). Các hàm, toán tử trong bài này và các bài crypto sau sẽ được tiêu chuẩn hóa về ngôn ngữ Python (cụ thể là version 3). Như sơ đồ bài trước thì từ một P...
MayFestHook Là gì ? Trong react trước đây, để sử dụng được các state bắt buộc ta phải sử dụng chúng trong 1 class của javascript. Từ phiên bản 16.8 định nghĩa hook được ra đời, nó cho phép sử dụng được staste và lifecycle vào trong 1 function. Hook được hiểu nôm na là 1 function có thể sử dụng state ở bên trong, thay vì trả về JSX như component thì trả về 1 giá trị nào đó. Ngoài các hook được React...
React js MayFestHôm nay mình sẽ chia sẽ cho các bạn các dạng hình khối ở trong SwiftUI. Thì ở trong SwiftUI ta sẽ có 5 dạng hình khối cơ bản. Bây giờ chúng ta sẽ bắt đầu nhé. Rectangle Thì thẻ này sẽ giúp ta tạo ra một hình khối hộp với kích thước chiều rộng và chiều dài ta truyền vào thông qua thuộc tính frame RoundedRectangle Thì thằng này cũng sẽ giúp ta tạo ra một dạng hình khối nhưng nó khác thằng trên...
AndroidiOS SwiftUI MayFestTrong quá trình làm việc với hệ quản trị cơ sơ sở dữ liệu(Mysql, Postgres, Oracle...) rất nhiều khi gặp lỗi "Too many connections". Tại thời điểm đó, database không thể tiếp tục nhận các kết nối đến. Bạn không thể connect dùng GUI. Các service và application không hoạt động. -> Giải pháp đơn giản nhất là reset lại database, để đóng các connections hiện tại. Ưu điểm: Nhanh, dễ...
MySQL Optimization database performance MayFest May Fest1. Giới thiệu HikariCP Ở bài trước, mình có nói về max_connections. Bài viết này, mình sẽ nói chi tiết hơn vấn đề mà mình đã gặp phải, cách khắc phục nó. Để hiểu về HikariCP là gì có thể tham khảo 1 bài viết này Trong bài viết này, mình sẽ giải thích chi tiết từng tham số trong đó, những ảnh hưởng của tham số qua các ví dụ thực tế. Trong ví dụ của mình, mình sẽ sử dụng Project Spring...
Java Spring boot MayFest May Fest Database Connection Pool HikariCPTương tự bài viết trước về thuật toán Simplified AES, mình sẽ không thảo luận về lý thuyết của tiêu chuẩn mã hóa dữ liệu Advanced Encryption Standard - AES, hay cụ thể là Simplified AES. Thay vào đó, mình sẽ thực hành mã hóa và giải mã bằng tay từng bước thuật toán Simplified AES. Cùng bắt tay thực hiện nào! Task 1: Thực hiện mã hóa Simplified AES (Encryption) bằng tay để tìm ciphertext Mình sẽ sử...
MayFest May Fest Cryptography EncryptionBiến là một khái niệm rất quan trọng trong nhiều ngôn ngữ lập trình, được sử dụng để lưu trữ cá giá trị. Chúng ta có thể gán một giá trị cho một biến, khi nào cần giá trị (số, chuỗi, etc) thì gọi tên biến thay vì giá trị, các interpreter, compiler truy xuất đến giá trị đã được gán vào biến khi thực hiện việc tính toán thay cho chúng ta. Con người dễ tiếp thu ngôn ngữ hơn là những...
javascipt MayFest programming languageỞ bài viết này, mình sẽ không thảo luận về lý thuyết của tiêu chuẩn mã hóa dữ liệu (Data Encryption Standard - DES), hay cụ thể là Simplified DES. Thay vào đó, mình sẽ thực hành mã hóa bằng tay từng bước thuật toán Simplified DES và thực hiện giải mã thông qua công cụ SageMath để kiểm tra xem có đúng Plaintext trước đó hay không. Cùng bắt tay thực hiện nào! Task 1: Thực hiện mã hóa Simplified DES...
MayFest May Fest Cryptography EncryptionTrong bài viết này, mình sẽ trình bày về nguyên lý hoạt động về ứng dụng hàm băm cho việc xác thực thông tin và cho chữ ký số, giải thích, cũng như so sánh ưu, khuyết điểm của mỗi loại. 1. Nguyên lý hoạt động về ứng dụng hàm băm cho việc xác thực thông tin Chú thích: M: message – nội dung thông điệp cần mã hóa H(M): hash - hàm hash message M E(M): encrypt - hàm mã hóa message M D(M):...
MayFest May Fest cryptographic hash Hash FunctionsTrong bài trước, mình có giới thiệu chạy các câu lệnh K8S bằng Command Line Để tạo 1 deloyment đơn giản chỉ cần chạy lệnh kubectl create deployment hello-app --image=nginx:latest Trong câu lệnh trên đã lược bỏ hầu như hết các thuộc tính không bắt buộc, nó chạy được, nhưng muốn mở rộng thì khó hơn nhiều. Khi đó phải truyền thêm các điều kiện vào command line khiến nó rất rồi mắt. Chính vì...
Kubernetes K8s MayFest May Fest Kubernetes DeploymentNhư chúng ta đã biết, Builder pattern là một trong những Design Pattern thuộc về nhóm Creational Pattern - những mẫu thiếu kế cho việc khởi tạo đối tượng của lớp. Design Pattern này sẽ giúp chúng ta tạo mới một đối tượng từ class một cách rõ ràng, linh hoạt. Bên cạnh đó, Data Class là một từ khóa không còn xa lạ với chúng ta ở trong Kotlin. Khi sử dụng Data Class, với từ khóa này, trình biên dịch...
MayFestMở đầu Đến với tháng 4, tháng của những lời nói dối. Thì tôi sẽ đưa các bạn đi tìm về một sự thật thú vị. Đó là sự thật về kiến trúc của mysql. Một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) phổ biến nhất hiện nay. Major components & Layer MYSQL Architecture mô tả cách mà những component trong mysql tương tác với nhau. Về cơ bản thì MYSQL Architecture là một hệ thống...
MySQL MayFest architecture1. Testing là gì Thường mọi người hiểu khái niệm test chỉ là chạy test, chạy phần mềm nhưng đó chỉ là một phần không phải tất cả các hoạt động test. Các hoạt động test tồn tại trước và sau khi chạy PM bao gồm: lên kế hoạch và kiểm soát, chọn điều kiện test, thiết kế và chạy test case, test kết quả, đánh giá tiêu chí kế hoạch, báo cáo trong quy trình test và các hoạt động đóng sau...
MayFest ISTQB foundation1. Đặt Vấn Đề Khi chúng ta viết 1 chương trình C/C++ , source code của chúng ta sẽ được lưu trong storage, sau đó khi chúng ta compile hệ thống sẽ tạo ra file cài đặt và file này cũng được lưu trong storage. Cuối cùng là quá trình chúng ta run file program, thực chất đây là quá trình chúng ta load chương trình vào Memory và excute. Vậy chương trình được load vào Memory sẽ được structure như thế nào ở...
C++ C/Cpp MayFest1. Giới Thiệu Trong Swift, Optional là một tính năng vô cùng mạnh mẽ giúp chương trình không bị crash. Chúng ta thường sử dụng Optional cho trường hợp một biến hoặc một hằng có thể có hoặc không có giá trị. Một cách dễ hiểu Optional giống như một chiếc cốc, có hai khả năng có thể xảy ra là cốc có thể có nước hoặc không có gì cả. Kí hiệu của Optional là Optional <T> với T là kiểu...
#AppMobile MayFestNginx là một Web Server phổ biến, quen thuộc đối với những Web Developer. Nginx hoạt động mạnh mẽ với hiệu suất cao, khả năng xử lí nhiều request đồng thời một lúc mà lại tốn ít tài nguyên. Ngoài việc được sử dụng là một Web Server, Nginx còn được sử dụng như là một Load Balancer và Reverse Proxy. Trong bài viết này, mình sẽ hướng dẫn cách cấu hình Nginx thành một Web Server như thế nào. 1....
nginx MayFestBài hôm nay mình sẽ trình bày một khái niệm cực kì quan trọng với mọi hệ thống backend. Hẳn mọi người đã từng nghe điều này. Đừng tin tưởng dữ liệu cho người dùng nhập vào. Câu trên có thể mở rộng ra phạm vi với các nguồn dữ liệu khác được coi là không tin cậy, gồm database, client,... Trong trường hợp cần nhận data từ các nguồn đó, nhất thiết phải thực hiện Validation. 1....
Java Spring Boot MayFest May Fest validationBài trước (Đây là bài trước: https://viblo.asia/p/khi-co-source-code-roi-thi-hack-co-de-khong-maGK7G8AKj2), mình có đưa một câu hỏi là Khi có source code rồi thì hack có dễ không?. Tuy nhiên bài đó thì có vẻ cũng hơi phức tạp, nên nay mình quyết định ra một bài mới Vẫn là có source code, nhưng hack dễ hơn, để viết về một bài nhưng nó đỡ phức tạp hơn bài trước. Cho bạn nào mới tiếp cận review source...
CTF MayFest May Fest hack web review source codeHello! Có thể nói trường phái "Dịch ngược code Babel" là một thứ khá mới mẻ, có lẽ cũng không có nhiều lập trình viên đang đi theo con đường này. Đây là con đường đầy chông gai, nhưng một khi vượt qua những trở ngại bước đầu thì phần thưởng dành cho người can đảm là rất xứng đáng. Vậy phương pháp "Dịch ngược code Babel" sẽ mang lại cho bạn lợi ích gì? Đây là...
JavaScript MayFest May Fest BabelHello! Dịch ngược code Babel là tên một phương pháp do mình đặt tên, đại ý là đọc code của các file JS đã được Babel build ra trên các website, rồi sau đó viết lại nó, có thể coi là "decode" Javascript. Đây là trường phái khá mới mẻ, có lẽ cũng không có nhiều lập trình viên đang đi theo con đường này. Đây là con đường đầy chông gai, nhưng một khi vượt qua những trở ngại bước...
JavaScript MayFest May Fest BabelỨng dụng camera của bạn hoạt đông như nào ? Một thắc mắc chắc rằng ai cũng đã từng có, đặc biệt với một lập trình viên mobile thì việc tìm hiểu về cách tạo ra và cách hoạt động của nó là điều tất yếu. Trong bài viết này mình sẽ chia sẽ một chút kinh nghiệm của mình khi làm việc với module Camera trong React native. 1. Tìm hiểu về React native: React native được Facebook cho ra mắt vào...
camera MayFest May FestNếu ví rằng công việc Pentesting như là một cuộc chiến, thì Information Gathering có lẽ là quá trình trinh sát. Nó đại diện cho triết lý vô cùng quan trọng "Biết địch biết ta, trăm trận trăm thắng". Thành công cũng ở đây, thất bại cũng ở đây. Càng nắm vững được thông tin của mục tiêu, bạn càng tăng cơ hội chiếm quyền điều khiển mục tiêu. Vậy trong quá trình tìm kiếm các lỗ...
CyberSecurity Basic security MayFest web hackingTrong quá trình tìm hiểu về cách thức hoạt động của webpack, mình vô tình đọc được 1 loạt bài rất hay, tiếc là lâu quá rồi giờ không tìm lại được đầy đủ. May thay vẫn còn tìm lại được 1 cái video, do chính cha đẻ của Webpack hướng dẫn cách thức hoạt động của Webpack. Bài viết này mình dịch lại nội dung video và giải thích kỹ càng để giúp các bạn hiểu tường tận về cách thức...
JavaScript MayFest May Fest Webpack1. Giới thiệu CVE-2019-8942 lợi dụng lỗi hổng LFI + File Upload để thực hiện RCE đến máy chủ web với quyền author. Phiên bản bị ảnh hưởng bao gồm trước 4.9.9 và từ 5.0.0 đến 5.0.1. Tại các phiên bản này hàm wp_update_post lấy trực tiếp biến $post_data mà không cần kiểm tra các trường dữ liệu không được phép. Do đó, người dùng với quyền author có thể thay đổi dữ liệu của bài đăng...
MayFest CVEMột trong những vị trí điển hình của ngành CNTT đó là Tester. Bạn có nguyện vọng cũng như chuyên môn để trở thành một tester nhưng lại bị làm khó bởi những câu hỏi phỏng vấn tuyển dụng Tester. Bạn nên nhớ rằng, tỉ lệ thành công của buổi phỏng vấn phụ thuộc rất nhiều vào hành trang chuẩn bị của bạn. Hiểu được vấn đề đó, freeC đã tổng hợp những câu hỏi phỏng vấn tuyển...
câu hỏi phỏng vấn tester Agile Tester MayFest May Fest