1. Trang chủ
  2. » Cao đẳng - Đại học

Báo cáo thực tập xây dựng API cho hệ thống PIPELINE SECURITY và PLUGIN URL FILTERING

26 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đặc biệt cảm ơn anh Phạm Hoàng Tuấn Kiệt, đã training các kiến thức cơ bản để xây dựng API với Golang cũng như các bước xây dựng 1 plugin web, hướng dẫn, giúp đỡ cho chúng em tận tình cả

Trang 1

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

Trang 2

LỜI MỞ ĐẦU

Ngày nay, chúng ta chứng kiến sự phát triển chóng mặt của ngành công nghệ thông tin và mạng internet, hàng loạt ứng dụng của internet đã được ra đời, kéo theo đó là trào lưu chuyển đổi các nghiệp vụ cũ sang nền tảng này Điều đó có nghĩa là không loại trừ nghiệp vụ quản lí Cần thừa nhận việc bảo mật trên internet không cao, nhưng khi tích hợp bán hàng và quản lí cùng lúc, các thông tin lưu trữ không quá nhạy cảm thì website lại trờ thành lợi thế và nhu cầu thiết yếu của mọi doanh nghiệp

Ngành lập trình web gần như được sinh ra cùng với internet, ngay cả môi trường internet cũng đang phát triển và hoàn thiện, người dùng mới vẫn liên tục gia tăng Điều đó chứng minh rằng lĩnh vực này vẫn chưa bao giờ là lỗi thời Được tiếp cận từ sớm và lớn lên với chúng, giới trẻ sẽ là nguồn nhân lực quan trọng cho sự phát triển của ngành lập trình web sau này Vì lý do này, em quyết định chọn lập trình web làm định hướng cho việc học tập của mình

Để có thêm trải nghiệm thực tế môi trường làm việc công ty, em đã quyết định chọn TMA – Solutions một trong những 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

Trang 3

Đặc biệt cảm ơn anh Phạm Hoàng Tuấn Kiệt, đã training các kiến thức cơ bản để

xây dựng API với Golang cũng như các bước xây dựng 1 plugin web, hướng dẫn, giúp đỡ cho chúng em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới

Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này

Em xin chân thành cảm ơn

Sinh viên thực hiện

Lộc Đức Thắng TpHCM, ngày 13 tháng 1 năm 2021

Trang 4

Mục lục

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6

1 Giới thiệu Công ty TMA Solutions 6

2 Sản phẩm của công ty 6

CHƯƠNG 2: NỘI DUNG THỰC TẬP 8

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8

2 Nghiên cứu kỹ thuật 8

3 Thực hiện project 11

4 Lịch làm việc 11

CHƯƠNG 3: CHI TIẾT VỀ PROJECT 13

1 Giới thiệu về dự án 13

1.1 Nội dung 15

1.2 Một số hình ảnh trong hệ thống 17

2 Thực hiện 24

TỔNG KẾT 25

TÀI LIỆU THAM KHẢO 26

Trang 5

NHẬN XÉT CỦA KHOA

Trang 6

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1 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) là một công ty Việt Nam, kinh doanh các dịch vụ liên quan đến phát triển phần mềm TMA được thành lập từ năm 1997, hiện đang là công ty phần mềm hàng đầu Việt Nam với 2500 kỹ sư

Khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới đến từ 27 nước TMA hiện có 8 chi nhánh tại Việt Nam (7 tại thành phố HCM và 1 ở thành phố Quy Nhơn) và 6 chi nhánh ở nước ngoài (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

2 Sản phẩm của công ty

- Lĩnh vực hoạt động:

Tích hợp hệ thống Xuất khẩu phần mềm Giải pháp phần mềm Cung cấp các giải pháp, dịch vụ viễn thông Đào tạo sinh viên và nhân viên về kiến thức phần mềm và kỹ năng mềm Dịch vụ đánh giá an toàn thông tin Kiểm tra toàn diện sự an toàn thông tin và năng lực bảo mật của doành nghiệp, tìm ra những rủi ro, đề ra giải pháp khắc phục 9 Dịch vụ

cơ 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 và mạng máy tính Thiết kế và cài đặt hệt thống mạng máy, mạng Wifi, WAN, WPN, và điện thoại nội

bộ, Tư vấn, triển khai và đào tạo về sử dụng phần mềm mã nguồn mở

- Công nghệ chính

Trang 7

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,…

Trang 8

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 được đào tạo kiến

thức về xây dựng một hệ thống quản lí phía admin và kiến thức về mạng máy tính để filter network đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển phần mềm chuyên nghiệp

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

Thời gian : 1 ngày

Nội dung : Giới thiệu về công ty, cách tổ chức của công ty

Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và 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ủa công ty

Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công

ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…

Kết quả : Hiểu thêm về công ty TMA, quá trình thành lập và phát triển Có thêm

các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật,

có trách nhiệm hơn

2 Nghiên cứu kỹ thuật

a Các công cụ làm việc

Thời gian : 2 ngày

Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá 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 về các công

cụ sẽ giúp ích cho trong công việc sau này

Một số phần mềm trong số đó như

- Jira - sử dụng trong làm việc nhóm quản lí task,

- GitLab/GitHub – quản lí mã nguốn source code

- Figma – thiết kế các wireframe design,

- Zimbra- mail trao đổi trong công ty

- GoLand – trình biên dịch ngôn ngữ Golang

- Devtool – Debug web plugin

Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên

Trang 9

Kết quả : Lập trình sử dụng các công cụ miễn phí trừ Goland, giúp dễ dàng kết

hợp các công cụ với nhau

b Tìm hiểu ngôn ngữ Golang

Thời gian : 5 ngày (1 tuần)

Nội dung : Được tìm hiểu các kiến thức cơ bản và nâng cao về Goland ứng dụng

trong phát triển hệ thống Back-end

- Các cú pháp cơ bản , cấu trúc chương trình cơ bản, các 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 các hiện thực OOP trong Golang :

o Structs thay vì Classes

o Composition thay vì Inheritance

o Polymorphism

- Tìm hiểu cách debug với Goland cài các thư viện mã nguồn mở cho dự

án

Thực hiện :

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

- Nâng cao kỹ năng lập trình với ngôn ngữ Golang và debug trên Goland

- Có được những kiến thức quan trọng cho việc xây dựng API sau này

- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu

Trang 10

c Tìm hiểu và sử dụng hệ quản trị cơ sở dữ liệu hướng đối tượng Postgre SQL

Thời gian : 3 ngày

Nội dung : Được tìm hiểu các kiến thức cơ bản và nâng cao về Postgre SQL ứng

dụng quản lí dữ liệu trong hệ thống Back-end

- Cách cài đặt và sử dụng Postgre SQL, kết nối tới Database online qua pgAdmin 4

- Tìm hiểu các kiểu dữ liệu cơ bản, các kiểu đối tượng và kiểu tự định nghĩa trong Postgre :

- Viết các truy vấn với database mẫu có sẵn

Thực hiện :

- Tìm hiểu và thực hành theo tài liệu mentor cung cấp

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

- Có được những kiến thức quan trọng cho việc xây dựng API sau này

- Ngoài ra còn được biết thêm một số tip cải thiện query với Postgre

d Tìm hiểu và sử dụng Redis

Thời gian : 2 ngày

Nội dung : Cách thức lưu trữ, truy vấn dữ liệu, caching với Redis

- Cách cài đặt và 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 trên Redis bằng Golang sử dụng thư viện

Thực hiện :

- Tìm hiểu và thực hành theo tài liệu mentor cung cấp

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

- Có được những kiến thức quan trọng cho việc xây dựng API sau này

- Cache để giảm tải cho server

e Xây dựng Plugin block Url cho Chrome, Firefox và Safari

Thời gian : 12 ngày

Nội dung : Cách xây dựng một plugin web, cách thức block url trên nền tảng

javascript

- Tổ chức file maniest.js để cấu hình cho plugin

- Xây dựng các tệp html để dựng dao diện plugin, page block

Trang 11

- Sử dụng webBlocking để bắt và xử lí các request trên browser

Thực hiện :

- Tìm hiểu và thực hành theo tài liệu mentor cung cấp

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

- Có được những kiến thức quan trọng cho việc xây dựng API sau này

- Biết cách up plugin lên store

- Deploy plugin với Enterprise Policy

3 Thực hiện project

Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ bản về Golang,Postgre SQL ,Redis, Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để tham gia vào project thực tế Chi tiết đồ án sẽ được nói ở phần sau

100%

2

- Tìm hiểu ngôn ngữ lập trình Golang

- Thực hành Golang

- Làm bài test Golang

Phạm Hoàng Tuấn Kiệt

Phạm Hoàng Tuấn Kiệt

100%

4

- Tìm hiểu về Redis

- Thực hành thêm,xóa,sửa key- value trong Redis

Phạm Hoàng Tuấn Kiệt

100%

Trang 12

- Kết nới Redis online

5

- Xây dựng Plugin

- Viết html cho UI Plugin

- Build block url feature

Phạm Hoàng Tuấn Kiệt

- Restfull API trong Golang

- Viêt document cho API trên Swagger

Phạm Hoàng Tuấn Kiệt

- Tích họp API url tracking

- Xây dựng chức năng đồng bộ đăng nhập với app desktop

- Xậy dụng chức năng report threat

- Xây dựng Block Page

- Fix lỗi khi token hết hạn

Phạm Hoàng Tuấn Kiệt

100%

8,9 - Convernt chỉnh sửa UI và chức

năng cho Firefox và Safari

Phạm Hoàng Tuấn Kiệt

100%

Trang 13

CHƯƠNG 3: CHI TIẾT VỀ PROJECT

1 Giới thiệu về dự án

Dự án “Pipeline Security” là một dự án outsource cho khách hàng Mỹ Dự án hơn

30 tham gia phát triển theo quy trình chuẩn, hiện đại và chuyên nghiệp Dự án gồm 2 phần chính là quản lí tổ chức phía admin và ngăn chặn nội dung duyệt web phía end-user Sản phẩm dược tách biệt các giữa các nhóm phát triển Back-end, Front-end, BA, Testing, Mobile …

Sản phẩm tạo ra cho doanh nghiệp tạo ra và bán các gói dịch vụ, khi đã mua có thể chia sẽ sử dụng nội bộ (ngang hàng) hoặc tiếp tục sang nhượng tạo ra phân cấp theo mô hình tam giác Tất nhiên phân chia ở đây có điểm dừng trong 5 cấp Với việc bán lại các gói dịch vụ phải đảm bảo tuân theo các policy của cấp trên, cũng như bị giới hạn một số quyền quản lí

Các công nghệ sử dụng trong dự án:

AGENT Platform Programing

Trang 14

Mobile Platform Programing

via VPN SWIFT - Native Code

Control DNS details via VPN Connection and device routing

Android

UI - Program

flow Java - Native Code

DNS controller

via VPN Java - Native Code

Control DNS details via VPN Connection and device routing

VPN Server VPN Server

Open VPN (Commercial License)

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

Back End APIs Go

Front End Services

Programing language Note Front End Angular 10

Trang 15

1.1 Nội dung

Phân câp người ùng trong Pipeine

dự án Pipeline, chịu trách nhiệm kiểm soát tất cả sản phẩm, ở mọi

cấp bậc trong mô hình

bật ngang hàng và khách hàng của mình sau khi sang nhượng dịch vụ

bật ngang hàng và khách hàng của mình sau khi sang nhượng dịch vụ

bật ngang hàng và khách hàng của mình sau khi sang nhượng dịch vụ

Các chức năng của hệ thống quản lí

khoản

Cho phép người dùng truy cập vào

hệ thống Sửa đổi mật khẩu hoặc thông tin cá nhân cũng như ngôn

ngữ phù hợp

Trang 16

2 Roles and Permission Phân quyền cho tài khoản đi kèm

với các mức độ truy cập, quản lí

của tài khoản đó

Chức năng phía end user

khoản

Cho phép người dùng truy cập vào

hệ thống Sửa đổi mật khẩu hoặc

Trang 17

thông tin cá nhân cũng như ngôn

ngữ phù hợp

2 Block url theo category Chặn người dùng truy cập các url

trong từ điển theo danh mục

cập

1.2 Một số hình ảnh trong hệ thống

Hình 1: Một số API trong hệ thống:

Trang 18

Hình 2: Code và Debug trên Goland

Hình 3: Caching trên Redis Server

Trang 19

Hình 4: FollowChart hoạt động Plugin

Hình 5: Design Plugin trên Figma

Trang 20

Hình 6: Tổ chức thư mục và xây dựng file manifest cho Plugin

Trang 21

Hình 7: Giao diện và chức năng plugin trên Chrome và Firefox

Trang 22

Hình 8: Giao diện và chức năng plugin trên Safari

Hình 9: Người dùng bị chặn trang web không được truy cập

Trang 23

Hình 10: Plugin được đưa lên trên Store

Trang 24

Giai đoạn Thảo luận

o Trao đổi với mentor để thống nhất về công nghệ sử dụng

o Tìm hiểu về công nghệ

Giai đọn phát triển:

o Dưới sự chỉ dẫn của leader và mentor xây dựng các chức năng được giao

o Meeting hằng ngày để báo cáo tiến độ Giai đoạn kiểm thử và fix bug

o Sau khi Developer hoàn thành phần cài đặt dịch vụ, QC sẽ thực hiện test dịch vụ Lúc này PM sẽ liên hệ đối tác để lấy các thông tin test, giải đáp

thắc mắc cho QC nếu có

o Sau khi QC hoàn thành test, sẽ gửi ngược lại cho PM nghiệm thu Sau khi

PM xác nhận nghiệm thu thành công sẽ quay về giai đoạn thảo luận cho

Sprint tiếp theo

2.3 Kết quả

Hoàn thành công việc được giao đúng tiến độ

Trang 26

TÀI LIỆU THAM KHẢO

Ngày đăng: 05/09/2021, 21:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w