Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
2,22 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP XÂY DỰNG API CHO HỆ THỐNG PIPELINE SECURITY VÀ PLUGIN URL FILTERING Công ty thực tập : TMA Solutions Người phụ trách : Phạm Hoàng Tuấn Kiệt Thực tập sinh : Lộc Đức Thắng TP Hồ Chí Minh, tháng năm 2021 LỜI MỞ ĐẦU Ngày nay, chứng kiến phát triển chóng mặt ngành cơng nghệ thơng tin mạng internet, hàng loạt ứng dụng internet đời, kéo theo trào lưu chuyển đổi nghiệp vụ cũ sang tảng Điều có nghĩa khơng loại trừ nghiệp vụ quản lí Cần thừa nhận việc bảo mật internet không cao, tích hợp bán hàng quản lí lúc, thông tin lưu trữ không nhạy cảm website lại trờ thành lợi nhu cầu thiết yếu doanh nghiệp Ngành lập trình web gần sinh với internet, mơi trường internet phát triển hồn thiện, người dùng liên tục gia tăng Điều chứng minh lĩnh vực chưa lỗi thời Được tiếp cận từ sớm lớn lên với chúng, giới trẻ nguồn nhân lực quan trọng cho phát triển ngành lập trình web sau Vì lý này, em định chọn lập trình web làm định hướng cho việc học tập Để có thêm trải nghiệm thực tế môi trường làm việc công ty, em định chọn TMA – Solutions công ty lớn hàng đầu Việt Nam để thực tập, học hỏi, tích lũy thêm kinh nghiệm LỜI CẢM ƠN Đầu tiên em xin gửi lời tới công ty TMA tạo điều kiên cho em học tập, trau dồi thêm kiến thức hoàn thành tốt thực tập Chỉ thời gian ngắn, nhờ dẫn nhiệt tình mentor, nhóm thực tập chúng em tiếp thu kiến thức quan trọng để xây dựng API cho hệ thống Pipeline Security Plugin Url Filtering Chân thành cảm ơn anh chị nhóm mentor bỏ nhiều thời gian,cơng sức để hướng dẫn chúng em hoàn thành đợt thực tập Đặc biệt cảm ơn anh Phạm Hoàng Tuấn Kiệt, training kiến thức để xây dựng API với Golang bước xây dựng plugin web, hướng dẫn, giúp đỡ cho chúng em tận tình khó khăn cơng việc, đến khó khăn việc làm quen với mơi trường Cũng xin cảm ơn thầy cô khoa Công nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo Em xin chân thành cảm ơn Sinh viên thực Lộc Đức Thắng TpHCM, ngày 13 tháng năm 2021 Mục lục CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP Giới thiệu Công ty TMA Solutions Sản phẩm công ty CHƯƠNG 2: NỘI DUNG THỰC TẬP Tìm hiểu cơng ty kỹ công ty Nghiên cứu kỹ thuật Thực project 11 Lịch làm việc 11 CHƯƠNG 3: CHI TIẾT VỀ PROJECT 13 1.1 Giới thiệu dự án 13 Nội dung 15 1.2 Một số hình ảnh hệ thống 17 Thực 24 TỔNG KẾT 25 TÀI LIỆU THAM KHẢO 26 NHẬN XÉT CỦA KHOA CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP Giới thiệu Công ty TMA Solutions TMA Solutions (gọi tắt TMA, tiếng Việt: Công ty TNHH Giải Pháp Phần Mềm Tường Minh) công ty Việt Nam, kinh doanh dịch vụ liên quan đến phát triển phần mềm TMA thành lập từ năm 1997, công ty phần mềm hàng đầu Việt Nam với 2500 kỹ sư Khách hàng tập đồn cơng nghệ cao hàng đầu giới đến từ 27 nước TMA có chi nhánh Việt Nam (7 thành phố HCM thành phố Quy Nhơn) chi nhánh nước (Mỹ, Canada, Châu Âu, Nhật, Úc, Singapore) Phòng Trung tâm Đào Tạo TMA, Phòng Trung tâm Phát triển Sinh Viên, Phòng Trung tâm sáng tạo TMA Sản phẩm cơng ty - Lĩnh vực hoạt động: Tích hợp hệ thống Xuất phần mềm Giải pháp phần mềm Cung cấp giải pháp, dịch vụ viễn thông Đào tạo sinh viên nhân viên kiến thức phần mềm kỹ mềm Dịch vụ đánh giá an toàn thơng tin Kiểm tra tồn diện an tồn thơng tin lực bảo mật dồnh nghiệp, tìm rủi ro, đề giải pháp khắc phục Dịch vụ sở hạ tầng thông tin Tư vấn, lựa chọn giải pháp cho hệ thống thông tin mạng máy tính Thiết kế cài đặt hệt thống mạng máy, mạng Wifi, WAN, WPN, điện thoại nội bộ, Tư vấn, triển khai đào tạo sử dụng phần mềm mã nguồn mở - Công nghệ Java, NET, C++, Mobile, AI Maching learning, PHP/Ruby, Cloud, Embedded & IoT, Telecom/Network, Big data & analytics, Angular, Nodejs, Reactjs, blockchain, Automation test, Network/Cloud Administration,… CHƯƠNG 2: NỘI DUNG THỰC TẬP Tham gia vào dự án Pipeline Security giúp sinh viên thực tập đào tạo kiến thức xây dựng hệ thống quản lí phía admin kiến thức mạng máy tính để filter network đồng thời rèn luyện kỹ mềm làm việc nhóm, thuyết trình, giao tiếp Tại cơng ty, sinh viên có hội học tập, khám phá làm việc môi trường phát triển phần mềm chun nghiệp Tìm hiểu cơng ty kỹ công ty Thời gian : ngày Nội dung : Giới thiệu công ty, cách tổ chức công ty Được nghe người phụ trách giới thiệu cơng ty, q trình thành lập phát triên (như nhắc đến trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức cơng ty Ngồi ra, thực tập sinh giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc… Kết : Hiểu thêm công ty TMA, q trình thành lập phát triển Có thêm kỹ việc sử dụng email công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm Nghiên cứu kỹ thuật a Các công cụ làm việc Thời gian : ngày Nội dung : Tìm hiểu cơng cụ sử dụng trình làm việc Trong thời gian này, mentor hướng dẫn thực tập sinh tìm hiểu cơng cụ giúp ích cho cơng việc sau Một số phần mềm số - Jira - sử dụng làm việc nhóm quản lí task, - GitLab/GitHub – quản lí mã nguốn source code - Figma – thiết kế wireframe design, - Zimbra- mail trao đổi công ty - GoLand – trình biên dịch ngơn ngữ Golang - Devtool – Debug web plugin Thực : Thực hành sử dụng phần mềm nêu Kết : Lập trình sử dụng cơng cụ miễn phí trừ Goland, giúp dễ dàng kết hợp công cụ với b Tìm hiểu ngơn ngữ Golang Thời gian : ngày (1 tuần) Nội dung : Được tìm hiểu kiến thức nâng cao Goland ứng dụng phát triển hệ thống Back-end - Các cú pháp , cấu trúc chương trình bản, nội dung gồm: o Variables, Types and Constants o Functions and Packages o Conditional Statements and Loops o Arrays, Slices and Variadic Functions o Pointers, Structs and Methods o Interfaces o Concurrency o Object Oriented Programming o Defer and Error Handling o Reflection o File Handling - Tìm hiển thực OOP Golang : o Structs thay Classes o Composition thay Inheritance o Polymorphism Tìm hiểu cách debug với Goland cài thư viện mã nguồn mở cho dự án Thực : - Tham gia đầy đủ buổi training công ty - Làm thực hành, kiểm tra kiến thức học - Kết : - Nâng cao kỹ lập trình với ngơn ngữ Golang debug Goland Có kiến thức quan trọng cho việc xây dựng API sau Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu c Tìm hiểu sử dụng hệ quản trị sở liệu hướng đối tượng Postgre SQL Thời gian : ngày Nội dung : Được tìm hiểu kiến thức nâng cao Postgre SQL ứng dụng quản lí liệu hệ thống Back-end - Cách cài đặt sử dụng Postgre SQL, kết nối tới Database online qua pgAdmin - Tìm hiểu kiểu liệu bản, kiểu đối tượng kiểu tự định nghĩa Postgre : - Viết truy vấn với database mẫu có sẵn Thực : - Tìm hiểu thực hành theo tài liệu mentor cung cấp - Làm thực hành, kiểm tra kiến thức học Kết : - Có kiến thức quan trọng cho việc xây dựng API sau Ngồi cịn biết thêm số tip cải thiện query với Postgre d Tìm hiểu sử dụng Redis Thời gian : ngày Nội dung : Cách thức lưu trữ, truy vấn liệu, caching với Redis - Cách cài đặt sử dụng Redis, kết nối tới Sẻver online qua Another Redis - Tìm hiểu cách thêm,xóa,sửa data Redis Golang sử dụng thư viện Thực : - Tìm hiểu thực hành theo tài liệu mentor cung cấp - Làm thực hành, kiểm tra kiến thức học Kết : - Có kiến thức quan trọng cho việc xây dựng API sau Cache để giảm tải cho server e Xây dựng Plugin block Url cho Chrome, Firefox Safari Thời gian : 12 ngày Nội dung : Cách xây dựng plugin web, cách thức block url tảng javascript - Tổ chức file maniest.js để cấu hình cho plugin - Xây dựng tệp html để dựng dao diện plugin, page block 10 6,7 7,8 8,9 10,11 12 - Kết nới Redis online - Xây dựng Plugin - Viết html cho UI Plugin - Build block url feature - Lên kế hoạch - Viết API URL tracking sử dụng Golang Gorm - Restfull API Golang - Viêt document cho API Swagger - Xây dựng giao diện cho plugin Chrome - Sử dụng thuật toán Aho Corasick để cải thiện tốc độ map url - Tích họp API url tracking - Xây dựng chức đồng đăng nhập với app desktop - Xậy dụng chức report threat - Xây dựng Block Page - Fix lỗi token hết hạn - Convernt chỉnh sửa UI chức cho Firefox Safari - Upload plugin lên Chrome Firefox store - Deploy plugin với Enterprise Policy - Viết Log - Caching data cho plugin - Tổng kết báo cáo Phạm Hoàng Tuấn Kiệt 100% Phạm Hoàng Tuấn Kiệt 100% Phạm Hoàng Tuấn Kiệt 100% Phạm Hoàng Tuấn Kiệt Phạm Hoàng Tuấn Kiệt 100% Phạm Hoàng Tuấn Kiệt 100% 100% 12 CHƯƠNG 3: CHI TIẾT VỀ PROJECT Giới thiệu dự án Dự án “Pipeline Security” dự án outsource cho khách hàng Mỹ Dự án 30 tham gia phát triển theo quy trình chuẩn, đại chuyên nghiệp Dự án gồm phần quản lí tổ chức phía admin ngăn chặn nội dung duyệt web phía end-user Sản phẩm dược tách biệt nhóm phát triển Back-end, Front-end, BA, Testing, Mobile … Sản phẩm tạo cho doanh nghiệp tạo bán gói dịch vụ, mua chia sử dụng nội (ngang hàng) tiếp tục sang nhượng tạo phân cấp theo mơ hình tam giác Tất nhiên phân chia có điểm dừng cấp Với việc bán lại gói dịch vụ phải đảm bảo tuân theo policy cấp trên, bị giới hạn số quyền quản lí Các cơng nghệ sử dụng dự án: AGENT Platform Programing language Note DNS Forwarder Go Agent Windows Policy Updater Go DoH - DoT blocking Go Blocking via modifying routing table UI Go FYNE-IO Lib Installer Go Enterprise config Go Process controller Go DNS Forwarder Go Agent MacOS Policy Updater Go DoH - DoT blocking Go Blocking via modifying routing table UI Go FYNE-IO Lib Installer Go Process controller Go Launcher TBD 13 Mobile Platform iOS Android Programing language UI - Program flow SWIFT - Native Code DNS controller via VPN SWIFT - Native Code UI - Program flow Java - Native Code DNS controller via VPN Java - Native Code VPN Server VPN Server Open VPN (Commercial License) Note Control DNS details via VPN Connection and device routing Control DNS details via VPN Connection and device routing Seperate User Traffic and DNS Traffic, only DNS Traffic will hit the VPN Server and Enterprise Agent Better support and reduce workload for SysAdmin Open Source OpenVPN is possible BackEnd support Support Syncing of User ID - Token - IP (From VPN) Go Back End Services Programing language Note Main Database Postgre DB Database Back End Caching Database Redis APIs Go Front End Services Programing language Front End Note Angular 10 14 1.1 Nội dung Phân câp người ùng Pipeine STT Cấp Mô tả Fense SuperAdmin Là người quản lí tồn quyền dự án Pipeline, chịu trách nhiệm kiểm soát tất sản phẩm, cấp bậc mơ hình Tenent Người quản trị sản phẩm cấp bật ngang hàng khách hàng sau sang nhượng dịch vụ Organization Người quản trị sản phẩm cấp bật ngang hàng khách hàng sau sang nhượng dịch vụ Site Người quản trị sản phẩm cấp bật ngang hàng khách hàng sau sang nhượng dịch vụ Account Người trực tiếp sử dụng Các chức hệ thống quản lí STT Chức Đăng nhập quản lí tài Cho phép người dùng truy cập vào khoản hệ thống Sửa đổi mật thông tin cá nhân ngôn ngữ phù hợp Mô tả 15 Roles and Permission Phân quyền cho tài khoản kèm với mức độ truy cập, quản lí tài khoản Dashboard Thống kê kết quản lí nhiều dạng đồ thị Group Management Quản lí nhóm người dùng có gói dịch vụ Corporation Management Chức quản lí gói dịch vụ, tùy chỉnh hiển thị theo phân quyền User Management Quản lí thơng tin khách hàng sản phẩm họ sử dụng Policy Management Các sách kèm với gói dịch vụ bán Category Management Quản lí danh mục url domain Subscription Management Quản lí việc mua bán gồm sản phẩm, khách hàng chi tiết thơng tin giao dịch Chức phía end user STT Chức Đăng nhập quản lí tài Cho phép người dùng truy cập vào khoản hệ thống Sửa đổi mật Mô tả 16 thông tin cá nhân ngôn ngữ phù hợp Block url theo category Chặn người dùng truy cập url từ điển theo danh mục Report threat Report feedback ủl muốn truy cập Thay đổi profile Chỉnh sử profile cá nhân 1.2 Một số hình ảnh hệ thống Hình 1: Một số API hệ thống: 17 Hình 2: Code Debug Goland Hình 3: Caching Redis Server 18 Hình 4: FollowChart hoạt động Plugin Hình 5: Design Plugin Figma 19 Hình 6: Tổ chức thư mục xây dựng file manifest cho Plugin 20 Hình 7: Giao diện chức plugin Chrome Firefox 21 Hình 8: Giao diện chức plugin Safari Hình 9: Người dùng bị chặn trang web khơng truy cập 22 Hình 10: Plugin đưa lên Store 23 Thực 2.1 Người thực Thực tập sing Lộc Đức Thắng hướng dẫn anh Phạm Hàng Tuấn Kiệt Cùng 30 viên dự án Pipeline 2.2 Quá trình thực Giai đoạn Thảo luận o Trao đổi với mentor để thống công nghệ sử dụng o Tìm hiểu cơng nghệ Giai đọn phát triển: o Dưới dẫn leader mentor xây dựng chức giao o Meeting ngày để báo cáo tiến độ Giai đoạn kiểm thử fix bug o Sau Developer hoàn thành phần cài đặt dịch vụ, QC thực test dịch vụ Lúc PM liên hệ đối tác để lấy thông tin test, giải đáp thắc mắc cho QC có o Sau QC hồn thành test, gửi ngược lại cho PM nghiệm thu Sau PM xác nhận nghiệm thu thành công quay giai đoạn thảo luận cho Sprint 2.3 Kết Hồn thành cơng việc giao tiến độ 24 TỔNG KẾT Trong vòng tháng thực tập TMA em học nhiều kiến thức trải nghiệm dự án thực tê Tứ cải thiện kĩ thân, làm việc có nề nếp Về công nghệ em tiếp thu với ngôn ngữ Golang để phát triển hệ thống Back-end API Javascript để phát triển Plugin Ngồi cịn sử dụng công cụ Figma, Gitlab, Jira thành thạo Biết về Postgre SQL Redis caching Khi tham gia vào dự án em hoàn thành tốt nhiệm vụ giao thời hạn đặt kết tốt 25 TÀI LIỆU THAM KHẢO Golang: https://golangbot.com/learn-golang-series/ Gorm in Golang: https://gorm.io/index.html Gorm: https://www.mindbowser.com/golang-go-with-gorm/ Golang RestAPI: https://tutorialedge.net/golang/creating-restful-apiwith-golang/ PostgreSQL: https://www.postgresql.vn/blog/ Redis Caching: https://redislabs.com/ebook/part-1-gettingstarted/chapter-1-getting-to-know-redis/ https://developer.chrome.com/docs/extensions/mv2/getstarted/ https://developer.mozilla.org/en-US/docs/Mozilla/Addons/WebExtensions/Your_first_WebExtension https://developer.apple.com/app-extensions/ 26 ... gian ngắn, nhờ dẫn nhiệt tình mentor, nhóm thực tập chúng em tiếp thu kiến thức quan trọng để xây dựng API cho hệ thống Pipeline Security Plugin Url Filtering Chân thành cảm ơn anh chị nhóm mentor... - Xây dựng Plugin - Viết html cho UI Plugin - Build block url feature - Lên kế hoạch - Viết API URL tracking sử dụng Golang Gorm - Restfull API Golang - Viêt document cho API Swagger - Xây dựng. .. thức quan trọng cho việc xây dựng API sau Biết cách up plugin lên store Deploy plugin với Enterprise Policy Thực project Sau tháng training thực hành, thực tập sinh nắm kiến thực Golang,Postgre