1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Yêu cầu 1 cài Đặt và sử dụng gói helmet trong project

25 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Cài đặt và sử dụng gói helmet trong project
Chuyên ngành Khoa học máy tính
Thể loại Bài tập
Định dạng
Số trang 25
Dung lượng 1,16 MB

Nội dung

Yêu cầu 1: Cài đặt và sử dụng gói helmet trong project1.. Các bước thực hiện  B1: Cài đặt helmet bản 3.21.3 với câu lệnh sau: npm install helmet@3.21.3  B2: Kiểm tra file package.json

Trang 1

Yêu cầu 1: Cài đặt và sử dụng gói helmet trong project

1 Các bước thực hiện

 B1: Cài đặt helmet bản 3.21.3 với câu lệnh sau: npm install helmet@3.21.3

 B2: Kiểm tra file package.json để xem helmet đã được thêm vào chưa

 B3: Sử dụng helmet trong project bằng cách thêm dòng lệnh sau: let helmet = require(‘helmet’);

Trang 2

 B4: Kiểm tra kết quả

2 Giải thích chi tiết

a) File package.json là gì, vì sao khi cài package lại tự xuất hiện file này?

File package.json là phần cốt lõi của hệ sinh thái Node.js Đây là file chứa thông tin về project, bao gồm tên, phiên bản, mô tả, tác giả, script thực thi chính và đặc biệt là danh sách các package mà dự án sử dụng Khi cài đặt package, nếu project chưa có file package.json, nó sẽ tự động tạo file này để lưu thông tin về package helmet vừa cài đặt

b) Lệnh let helmet = require('helmet'); là gì?

Khi cài đặt xong package, để có thể sử dụng helmet thì ta cần phải import package đó vào trong script Cũng giống như python, khi muốn sử dụng các thư viện thì ta cần phải dùng lệnh import <tên package> và từ đó gọi các hàm có trong package

import os

os.listdir()

Tương tự với Node.js, nếu ta muốn sử dụng helmet thì ta phải import helmet vào thì mới sử dụng được

const helmet = require('helmet');

// enabling the Helmet middleware

app.use(helmet())

Trang 3

Yêu cầu 2: Ẩn thông tin nguy hiểm bằng helmet.hidePoweredBy()

1 Các bước thực hiện

 B1: Kiểm tra header

B2: Để ẩn header X-Powered-By, ta thêm dòng lệnh sau: app.use(helmet.hidePoweredBy())

 B3: Kiểm tra lại header

Trang 4

B4: Để thay giá trị của X-Powered-By thành giá trị giả mạo, ta dùng lệnh sau:

app.use(helmet.hidePoweredBy({ setTo: "PHP 4.2.0" }))

 B5: Kiểm tra lại header

 B6: Kiểm tra kết quả

Trang 5

2 Giải thích chi tiết

a) Header X-Powered-By là gì?

X-Powered-By là header bổ sung thêm, không hợp tiêu chuẩn nhưng rất phổ biến (Các header có tiền tố X-

thường là header bổ sung thêm) Header này thường được đính kẻm trong response cho biết công nghệ nào được

sử dụng ở phía backend

b) Vì sao cần phải ẩn header X-Powered-By?

Vì nếu attacker biết backend sử dụng công nghệ gì, attacker có thể tìm thêm version mà backend đang sử dụng

để từ đó khai thác các lỗ hổng đã được phát hiện

Trang 6

Yêu cầu 3: Giảm nguy cơ bị Clickjacking với helmet.frameguard()

1 Các bước thực hiện

 B1: Kiểm tra chức năng iframe

 B2: Để chống bị iframe, ta thêm lệnh sau: app.use(helmet.frameguard({ action: "deny" }))

Trang 7

 B3: Kiểm tra kết quả

2 Giải thích chi tiết

a) Lỗ hổng clickjacking là gì?

Clickjacking là một hình thức tấn công đánh lừa người dùng nhấp chuột vô ý vào một đối tượng trên website Khi nhấp chuột vào một đối tượng trên màn hình, người dùng nghĩ là mình đang click vào đối tượng đó nhưng thực chất họ đang bị lừa click vào một đối tượng khác (đã bị làm mờ hay ẩn đi) Kẻ tấn công có thể sử dụng kỹ thuật tấn công này cho nhiều mục đích Đánh cắp tài khoản người dùng, lừa click vào quảng cáo để kiếm tiền, lừa like page hoặc nguy hiểm hơn là cài một webshell lên máy chủ web

Trang 8

Yêu cầu 4: Giảm nguy cơ bị tấn công XSS với helmet.xssFilter()

1 Các bước thực hiện

B1: Để giảm nguy cơ bị tấn công XSS, ta thêm lệnh sau: app.use(helmet.xssFilter())

B2: Kiểm tra kết quả:

2 Giải thích chi tiết

a) Tấn công XSS là gì

Trang 9

Yêu cầu 5: Tránh suy diễn loại MIME trong phản hồi với helmet.noSniff()

1 Các bước thực hiện

B1: Thêm lệnh sau: app.use(helmet.noSniff())

B2: Kiểm tra kết quả

Trang 10

2 Giải thích chi tiết

Trang 11

Yêu cầu 6: Chặn IE mở HTML không uy tín với helmet.ieNoOpen()

1 Các bước thực hiện

B1: Thêm lệnh sau: app.use(helmet.ieNoOpen())

B2: Kiểm tra kết quả

Trang 12

2 Giải thích chi tiết

Trang 13

Yêu cầu 7: Yêu cầu trình duyệt chỉ truy cập HTTPS với helmet.hsts()

1 Các bước thực hiện

B1: Thêm lệnh sau: app.use(helmet.hsts({ maxAge: 7776000 }));

B2: Kiểm tra kết quả

Trang 14

2 Giải thích chi tiết

Trang 15

Yêu cầu 8: Vô hiệu hóa việc load DNS trước khi load resource với helmet.dnsPrefetchControl()

1 Các bước thực hiện

B1: Thêm lệnh sau: app.use(helmet.dnsPrefetchControl());

B2: Kiểm tra kết quả

Trang 16

2 Giải thích chi tiết

Trang 17

Yêu cầu 9: Vô hiệu hóa bộ nhớ đệm máy khách với helmet.noCache()

1 Các bước thực hiện

B1: Thêm lệnh sau: app.use(helmet.noCache());

B2: Kiểm tra kết quả

Trang 18

2 Giải thích chi tiết

Trang 19

Yêu cầu 10: Thiết lập Chính sách bảo mật nội dung với helmet.contentSecurityPolicy()

Trang 20

B2: Kiểm tra kết quả

2 Giải thích chi tiết

Trang 21

Yêu cầu 11: Cấu hình helmet sử dụng helmet cha

1 Các bước thực hiện

B1: Thêm lệnh sau:

B2: Kiểm tra kết quả

2 Giải thích chi tiết

Trang 22

Yêu cầu 12: Tìm hiểu về hash BCrypt

1 Các bước thực hiện

B1: Cài đặt bcrypt với lệnh sau: npm install bcrypt

 B2: Kiểm tra file package.json để xem helmet đã được thêm vào chưa

Trang 23

B2: Kiểm tra kết quả

2 Giải thích chi tiết

Trang 24

Yêu cầu 13:

1 Các bước thực hiện

B1: Thêm lệnh sau: B2: Kiểm tra kết quả

2 Giải thích chi tiết

Trang 25

Yêu cầu 14:

1 Các bước thực hiện

B1: Thêm lệnh sau: B2: Kiểm tra kết quả

2 Giải thích chi tiết

Ngày đăng: 03/11/2024, 09:55

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w