1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web

82 47 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 82
Dung lượng 4,38 MB

Nội dung

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP PHƯƠNG PHÁP ĐẢM BẢO AN TOÀN THEO KỸ NGHỆ HƯỚNG YÊU CẦU TRONG PHÁT TRIỂN WEB Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Ứng Đình Hướng Lớp: AT11C Người hướng dẫn: TS Phạm Văn Hưởng Khoa Công nghệ thông tin – Học viện Kỹ thuật mật mã Hà Nội, 2019 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP PHƯƠNG PHÁP ĐẢM BẢO AN TOÀN THEO KỸ NGHỆ HƯỚNG YÊU CẦU TRONG PHÁT TRIỂN WEB Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Ứng Đình Hướng Lớp: AT11C Người hướng dẫn: TS Phạm Văn Hưởng Khoa Công nghệ thông tin – Học viện Kỹ thuật mật mã 2 Hà Nội, 2019 3 MỤC LỤC 4 DANH MỤC TỪ VIẾT TẮT Từ viết tắt ATTT CNTT CSDL CSRF HĐH LAN MVC ORM OWASP PDO SDLC VPN WAN WDLC XSS Tiếng anh Tiếng việt/mơ tả An tồn thông tin Công nghệ thông tin Cơ sở liệu Lỗ hổng bảo mật Hệ điều hành Mạng máy tính cục Cross-site Request Forgery Local Area Network Model – view – controller Object Relational Mapping Kỹ thuật chuyển đổi liệu hệ thống khác Open Web Application Security Một tổ chức phi lợi nhuận Project PHP Data Objects Lớp truy xuất sở liệu Software Development Life Quy trình phát triển phần Cycle mềm Virtual Private Network Mạng dành riêng Wide Area Network Mạng diện rộng WAN Web development life cycle Vòng đời phát triển web Cross-Site Scripting Lỗ hổng bảo mật 5 DANH MỤC CÁC HÌNH VẼ 6 DANH MỤC CÁC BẢNG 7 LỜI CẢM ƠN Trong trình nghiên cứu làm đồ án Em xin gửi lời cảm ơn chân thành tri ân sâu sắc thầy cô trường Học viện Kỹ thuật Mật mã đặc biệt thầy giáo hướng dẫn TS Phạm Văn Hưởng nhiệt tình hướng dẫn bảo em q trình thực đề tài Những góp ý, định hướng thầy, cô bạn giúp cho em nâng cao trình độ hiểu biết chuyên môn cải thiện kiến thức mà em cịn thiếu Để từ em vận dụng hoàn thành đồ án tốt nghiệp Mặc dù cố gắng hoàn thành đồ án phạm vi khả cho phép chắn không tránh khỏi thiết sót Em mong nhận thơng cảm, góp ý q thầy bạn để đồ án chỉnh sửa hoàn thiện Hà Nội, ngày tháng 06 năm 2019 Sinh viên thực Ứng Đình Hướng 8 LỜI NĨI ĐẦU Với phát triển mạnh ngành công nghệ, nhu cầu sử dụng máy tính truy cập internet tăng lên ngày Trong thời đại ngày internet trở nên quen thuộc công cụ hữu ích để truyền tải quảng bá thông tin, thực hoạt động kinh doanh, mua bán quản lý Tất kéo theo phát triển không ngừng ứng dụng web Và dần khái niệm ứng dụng web trở nên phổ biến Kéo theo cơng ứng dụng web phát triển phức tạp ngày tăng lên Điều đặt vấn để cấp thiết cần làm để bảo đảm an toàn thông tin cho ứng dụng web, thông tin người sử dụng Các khái niệm chuyên môn công ứng dụng web dần trở nên phổ biến tài liệu chuyên ngành Các công cụ hỗ trợ người lập trình web, người quản trị mạng xuất nhiều giúp tìm kiếm lỗ hổng ứng dụng web khơng theo kịp phát triển nhanh đến mức chóng mặt theo xu hướng nhanh đẹp ứng dụng web, khơng thể ngăn chặn hồn tồn Các cơng ngày đa dạng khai thác triệt để lỗi ứng dụng web, người quản trị, hay người lập trình Thống kê cho thấy 75% cơng internet cơng ứng dụng web [1], gây thiệt hại vơ to lớn, việc tìm hiểu cơng ứng dụng web cần thiết nhằm có cách phịng chống bảo mật ứng dụng web hiệu trở thành yêu cầu cấp thiết Do xu tất yếu thời đại, nên việc tìm hiểu nghiên cứu ứng dụng web giúp ích nhiều cho nhà lập trình web mới, hay quản trị viên cịn kinh nghiệm việc quản trị hệ thống mạng mình, phịng tránh, khắc phục lỗ hổng Đồ án nhằm mục đích giới thiệu rõ ứng dụng web, xây dựng quy trình phát triển web theo kỹ nghệ hướng yêu cầu áp dụng vào xây dựng website an toàn Để thực nội dung trên, luận văn tổ chức thành chương sau: CHƯƠNG 1: TỔNG QUAN VỀ AN TOÀN ỨNG DỤNG WEB Nội dung chương khái quát khái niệm ứng dụng web, tìm hiểu nguy gây an tồn tìm hiểu số lỗ hổng ứng dụng web phổ biến cách khắc phục, phịng tránh Từ xác định yếu tố đảm bảo ứng dụng 9 web an tồn đánh giá Từ kiến thức áp dụng để xây dựng quy trình phát triển ứng dụng web an tồn CHƯƠNG 2: ĐẢM BẢO AN TOÀN TRONG PHÁT TRIỂN WEB THEO KỸ NGHỆ HƯỚNG YÊU CẦU Nội dung chương tìm hiểu quy trình phát triển web theo kỹ nghệ hướng u cầu thơng thường sau nghiên cứu áp dụng yêu cầu bảo mật theo giai đoạn dựa theo quy trình phát triển ứng dụng web CHƯƠNG 3: THỰC NGHIỆM XÂY DỰNG VÀ ĐẢM BẢO AN TOÀN ỨNG DỤNG WEB THEO KỸ NGHỆ HƯỚNG YÊU CẦU Chương mô tả cách triển khai áp dụng từ trình nghiên cứu Chương để phát triển ứng dụng web an toàn nhỏ, đáp ứng yêu cầu bảo mật theo giai đoạn 10 10 Hình 3.21 Giao thức HTTP bị cơng Sniffing attacks loại công mà Hacker sử dụng để lấy cắp thông tin "nhạy cảm" (vd: password, creadit card, users id, ) Để thực việc này, hacker thường sử dụng Sniffer - chương trình bắt gói tin truyền qua mạng Sniffer cơng cụ để phân tích khắc phục cố mạng thông qua việc bắt gói tin, Hacker lợi dụng điều để sử dụng chúng vào mục đích bất Nếu gói tin khơng mã hóa, liệu gói tin thể lấy Sniffer Sniffer phân tích đọc nội dung gói tin, từ đó, hacker lấy thông tin nhạy cảm cách dễ dàng Điểm yếu HTTP giải dễ dàng cách sử dụng protocol khác HTTPS HTTPS ngồi Sniffing attacks bảo vệ client khỏi kiểu công khác man-in-the-middle attacks, DNS rebinding, replay attacks HTTPS làm để bảo vệ website Giống HTTP, HTTPS giao thức truyền thơng tin Client Server (Nó phiên HTTP với thêm "S" cuối - viết tắt "Secure") HTTPS bảo mật liệu cách sử dụng giao thức TSL (Transport Layer Security) hay gọi SSL SSL tiêu chuẩn bảo mật cung cấp lớp bảo vệ:  Mã hóa (Encryption): tất liệu gửi browsers (Client) Server mã hóa Nếu Hacker lấy gói tin giải mã 68 68  Toàn vẹn liệu (Data integrity): Đảm bảo liệu truyền sửa đổi bị hỏng mà không bị phát  Xác thực (Authentication): Xác minh xem client có thực giao tiếp với Server định hay không Hoạt động SSL SSL sử dụng gọi Public Key Cryptography hệ thống Public Key Infrastructure (PKI) Hệ thống PKI (key đối xứng) sử dụng key khác để mã hóa thơng tin: public key private key Bất thứ mã hóa public key giải mã private key tương ứng ngược lại Lưu ý, private key nên bảo vệ kỹ truy cập người sở hữu Với trang web, private key phải giữ an toàn Server Nhưng ngược lại, public key lại cấp phát công khai cho ai, tất người cần để giải mã thơng tin mã hóa trước private key Quá trình hoạt động SSL thơng qua bước hình 3.22: Hình 3.22 Hoạt động giao thức SSL 69 69 Bước 1: Thiết lập "giao tiếp" an toàn Server Client - Handshake (bắt tay) Quá trình Handshake bắt đầu browsers truy cập trang web thông qua url Client khởi tạo kết nối SSL với Server với thông tin phiên kiểu mã hóa Bước 2: Sau nhận yêu cầu từ Client, Server trả cho Client SSL certificate với public key server Bước 3: Client nhận liệu từ Server, browser xác minh SSL certificate Những certificate kiểm sốt tổ chức bảo mật (Certificate Authority) Symantec, Comodo, GoDaddy, SSL Certificate khối liệu bao gồm nhiều thông tin server như:  Tên domain  Tên công ty sở hữu  Thời gian certificate cấp  Thời hạn certificate  Public key Bước 4: Sau xác minh xong, Browser sinh Key - K mã hóa public key nhận từ bước K sử dụng để mã hóa tất liệu truyền tải Client Server Bước 5: Do q trình mã hóa liệu sử dụng PKI (key đối xứng), nên Client cần gửi cho Server khóa K để giải mã gói tin Server dùng private key để giải mã gói tin lấy thơng tin khóa K Bước 6: Từ đây, thơng tin truyền tải Client Server mã hóa khóa K Khóa K unique có hiệu lực thời gian Session tồn Việc sử dụng HTTPS bảo vệ trang web an toàn nhiều Khi authentication, client biết giao tiếp cách an tồn với Server dự định Dữ liệu mã hóa encryption - sniffer lấy gói tin, khơng thể giải mã nội dung bên Toàn vẹn liệu data integrity, thể truyền liệu nhạy cảm mà không cần lo lắng việc bị hỏng sửa đổi mà khơng phát Chống công CSRF Chức chống CSRF Laravel thực cách tự động tạo CSRF token cho phiên người dùng hoạt động Token kiểm tra xác thực từ phiên Laravel, trước cấp quyền truy cập vào thao tác tài 70 70 nguyên Nếu mã thông báo Laravel CSRF khơng tìm thấy phiên lưu trữ, bị từ chối truy cập vào tài nguyên Bảo vệ CSRF Token form Xác định trường biểu mẫu “view”, phải ln có trường biểu mẫu CSRF token ẩn để đảm bảo middlware trung gian bảo vệ CSRF xác thực yêu cầu Bằng cách sử dụng @csrf {{ csrf_token() }} form @csrf VerifyCsrfToken Laravel tự động xác minh token từ yêu cầu đầu vào có khớp với token lưu trữ phiên hay khơng Sau cho phép truy cập vào tài nguyên sau xác minh token hợp lệ Bảo vệ CSRF Token gửi Ajax Trong laravel, Middleware xử lý tất yêu cầu không cho phép yêu cầu POST mà CSRF token phù hợp Do đó, để tiếp tục phải nhập CSRF token gửi yêu cầu AJAX data: { "_token": "{!! csrf_token() !!}" } $.ajax({ type: "POST", data: {"_token": "{{ csrf_token() }}","id": id}, url: some_url, success: function(msg){ // response } }); Hoặc đặt CSRF token header: $.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } }); Chống công SQL Injection Mặc dù Laravel sử dụng Eloquent ORM Query Builder để truy vấn liệu hỗ trợ nhiều việc thao tác với sở liệu cách an tồn thơng qua hàm có sẵn tiện lợi Nhưng có số lệnh query khó, phức tạp yêu cầu nhiều thao tác bắt buộc ta phải dùng query Hình 3.23 71 71 Hình 3.23 Minh hoạ chống SQL Injection Để thực query Laravel sử dụng cú pháp DB::raw(…) Với Route đầu truy cập đường dẫn ‘day-la-query-sql-injection’ câu lệnh = sử dụng điều kiện OR dẫn đến việc trả tất liệu bảng người dùng Nhưng truy cập đường dẫn ‘day-la-query-an-toan’ lấy được mà trả khơng tìm thấy kết phù hợp Laravel thay dấu hỏi biến truy vấn, tự động thoát biến đầu vào Điều bảo vệ mã khỏi công SQL Injection Chống công XSS Để tránh công XSS, nên sử dụng cú pháp đúp dấu ngoặc nhọn hiển thị: ({{ $variable }}) Chỉ sử dụng {!! $variable !!} chắn liệu biến an toàn để hiển thị Xác thực người dùng qua email Trong hệ thống website tính liên quan đến người dùng quan trọng bao gồm có xác thực người dùng Cụ thể người dùng muốn đổi mật phải cần xác thực qua phương thức gửi email Khi thực reset mật khẩu, admin tạo yêu cầu cập nhập mật cho độc giả Hệ thống tự động tạo mã token lưu email token vào bảng password_resets, thời gian sống token phút Tiếp gửi email đến mail người dùng Nếu người dùng, họ nhận email kèm đường, cần click vào đường link để xác thực Nếu xác thực thành công người dùng tiến hành cập nhập mật Vậy người dùng đổi mật thành công 3.5 Kiểm thử đánh giá hệ thống 72 72 3.5.1 Kiểm thử lỗi XSS Hình 3.24 Minh hoạ XSS Như ví dụ trên, giả sử hacker chèn đoạn mã script với mục đích get cookie in giao diện hiển thị cịn kí tự chữ bình thường Hình 3.24 Do sử dụng cấu trúc {{}} để bỏ qua thực thể HTML kèm với biến lúc hiển thị 3.5.2 Kiểm thử lỗi SQL Injection Hình 3.25 Minh hoạ SQL Injection Khi người dùng cố tình nhập sai câu tìm kiếm ‘or 1=1’ nhằm hiển thị tất danh sách bị chặn lại tham số ràng buộc PDO sử dụng liệu truyền vào cấu query trích dẫn, câu truy vấn phá hoại khơng cịn tác dụng Kết trả khơng tìm thấy ghi phù hợp Hình 3.25 3.5.2 Kiểm thử lỗi CSRF 73 73 Hình 3.26 Minh hoạ lỗi CSRF Nếu form gửi request ajax thiếu token CSRF, Middleware VerifyCsrfToken chặn trả trang thông báo lỗi 419 không tiếp tục thực request 3.6 Bảo trì 3.6.1 Ghi log ứng dụng Việc ghi lại log hệ thống điều cần thiết nên làm Nó không giúp dễ dàng nhận lỗi thời điểm định, sử dụng để debug lỗi Mà cần khảo sát lỗi xảy q trình, nhìn vào file log dễ dàng đưa nhận xét xác Chẳng hạn gặp lỗi không rõ ràng, lúc bị lúc khơng, khó để đưa phán đốn xác khơng dựa vào file log Hình 3.27 Xem chi tiết log Mặc định tập tin ghi log ứng dụng web thường rối khó đọc, gây khó khăn cho người lập trình viên việc debug Để khắc phục vấn đề này, ứng dụng thiết lập thêm phần quản lý logs Hình 3.27 Việc quản lý logs chia theo cảnh báo ghi log theo ngày Giúp quản trị viên theo dõi hoạt động ứng dụng có lỗi xảy phát kịp thời sửa chưa, tránh gây trải nghiệm không tốt tới người dùng 3.6.2 Kiểm tra bảo mật thường xuyên Việc bảo vệ trang web khỏi hacker ưu tiên hàng đầu Đối với điều hành trang web chí cịn quan trọng doanh nghiệp thương mại điện tử xử lý liệu cá nhân khách hàng 74 74 Một nhiệm bảo trì trang web quan trọng lên kế hoạch để bảo mật Cần kiểm tra xem tất tảng, plugin tập lệnh cập nhật hay chưa? Vì thơng thường nhà phát triển phát hành cập nhật để cải thiện bảo mật vá lỗi mà họ tìm thấy Thường xuyên kiểm tra để phát dấu hiệu bất thường, có kế hoạch quét virus định kỳ 3.6.3 Sao lưu liệu thường xuyên Sau ứng dụng web triển khai mạng bị tin tặc xấu dịm ngó Mục đích thích phá phách đánh cắp liệu nhạy cảm xố tồn liệu Để tránh trường hợp xảy ra, nên có kế hoạch lưu liệu hàng tháng hàng quý Nếu có lỗi xảy gây mát liệu có lưu để phục hồi 3.7 Tổng kết chương Từ việc nghiên phương pháp đảm bảo an toàn phát triển web, chương thực nghiệm vận dụng tốt phương pháp nghiên cứu để xây dựng lên trang quản lý thư viện đảm bảo an toàn bảo mật với quy mô nhỏ Chống lại lỗi bảo mật thường gặp Các phương pháp bảo mật vận dụng xuyên suốt trình phát triển, giúp đảm bảo an toàn từ khâu thiết kế triển khai Giúp việc phát triển code nhanh mà đảm bảo yêu cầu bảo mật Đây bước đệm ban đầu để giai đoạn phát triển hoàn thiện mặt tính tính bảo mật 75 75 KẾT LUẬN Sau thời gian nghiên cứu tìm hiểu đồ án xây dựng hoàn thiện Hoàn thành mục tiêu đề xây dựng phương pháp đảm bảo an toàn theo kỹ nghệ hướng yêu cầu phát triển web Ngồi đồ án cịn áp dụng phương pháp nghiên cứu để áp dụng vào xây dựng web quản lý thư viện với kỹ thuật an toàn Trang web sau xây dựng giải đảm bảo số vấn đề an tồn mã hố liệu đường truyền xác thực client, server thông qua sử dụng giao thức SSL Chống lỗi bảo mật SQL Injection, XSS, CSRF, phân quyền, xác thực người dùng,… Các chức vận hành môi trường thật hoạt động tốt ổn định, đảm bảo tính logic hiệu sử dụng Đảm bảo tính an tồn bảo mật cao Do thời gian thực đề tài tương đối hạn chế nên trang web tránh thiếu sót định Vì mục tiêu đồ án nghiên cứu phương pháp đảm bảo an toàn phát triển web nên phần thực nghiệm khơng trọng nhiều vào xây dựng tính cho trang web Chỉ xây dựng tính đăng nhập, cập thông tin, tạo người dùng tra cứu,… Chủ yếu tập chung vào phần thiết lập bảo mật, cách giảm thiểu lỗi trình xây dựng trang web từ khâu phân tích u cầu đến khâu hồn thiện sản phẩm nên tính bị hạn chế nhiều Để trang web hồn thiện mặt tính an toàn vấn đề bảo mật Hướng phát triển nghiên cứu thêm áp dụng thêm phương pháp bảo mật vào trang web Áp dụng thêm phương pháp đảm bảo an tồn server thiết lập thêm tường lửa để đảm bảo an tồn Hồn thiện đầy đủ tính phía độc giả phía quản trị viên, tối ưu code cho đơn giản, dễ đọc, dễ hiểu giảm thiểu lỗi Vì ngày sử dụng điện thoại thông minh sống hàng ngày Nên hướng phát triển tối ưu trang web dạng responsive cho người sử dụng desktop mobile Tăng tính tiện dụng linh hoạt việc quản lý, tra cứu lưu trữ 76 76 TÀI LIỆU THAM KHẢO [1] Acunetix, “Acunetix,” https://www.acunetix.com/websitesecurity/webapp-security/ [2] B Lâm, “Vnexpress,” 2018 https://vnexpress.net/so-hoa/87-trieu-nguoidung-facebook-bi-lo-thong-tin-ca-nhan-3732466.html [3] M Hải, “Tuoitre,” 2019 https://congnghe.tuoitre.vn/google-bi-khai-tu20190403085224605.htm [4] Cystack, “cystack,” 2018 https://resources.cystack.net/news/an-toanthong-tin-2018-mot-nam-nhin-lai/ [5] BT, “ANTV,” 2019 http://www.antv.gov.vn/tin-tuc/xa-hoi/hon-45000may-tinh-tai-viet-nam-nhiem-ma-doc-dao-tien-ao-269357.html [6] Vietsunshine, “vietsunshine,” 2018 https://www.vietsunshine.com.vn/2018/12/21/symantec-du-bao-xuhuong-an-ninh-mang-2019-va-xa-hon-nua/ [7] Symantec, “Formjacking: Major Increase in Attacks on Online Retailers,” 2018 https://www.symantec.com/blogs/threat-intelligence/formjackingattacks-retailers [8] Microsoft, Microsoft SDL: Return-on-Investment, Microsoft [9] Development and implementation of secure web applications, Infrastructure, Centre for the Protection of National, 2011 [10] Security In The Software Lifecycle, 2006, Department of Homeland Security [11] H T Quyen, “CSRF CSRF Protection Laravel,” 2018 https://kipalog.kaopiz.com/posts/CSRF-va-CSRF-Protection-trongLaravel [12] M BLOG, “Cách Laravel chống SQL Injection, CSRF, XSS,” 2018 https://minhbangchu.blogspot.com/2016/07/cach-laravel-chong-sql77 77 injection-csrf.html [13] N T Duc, “HTTP vs HTTPS: Làm để website bảo mật với SSL,” 2017 https://viblo.asia/p/http-vs-https-lam-the-nao-de-websitebao-mat-hon-voi-ssl-jvElaLbxZkw [14] D T Duyen, “Lợi ích lưu ý viết Unit test,” 2019 https://viblo.asia/p/unit-test-la-gi-loi-ich-va-nhung-luu-y-khi-viet-unittest-YWOZr20NZQ0 [15] N T Anh, Xây dựng ứng dụng web an toàn, 2013 78 78 PHỤ LỤC Phụ lục 1: Mã nguồn đảm bảo an toàn liệu đầu vào class AdminUserAddRequest extends FormRequest { public function rules() { return [ 'email' => 'required|email', 'phone' => 'required|numeric', 'mssv' => 'required|alpha_num', 'name' => 'required|min:8|max:30', 'class' => 'required|alpha_num', ]; } public function messages() { return [ 'email.required' => 'Trường bắt buộc nhập', 'phone.required' => 'Trường bắt buộc nhập', 'mssv.required' => 'Trường bắt buộc nhập', 'name.required' => 'Trường bắt buộc nhập', 'name.min' => 'Tiêu đề tối thiểu kí tự', 'name.max' => 'Tiêu đề nhập tối đa 30 kí tự', 'class.required' => 'Trường bắt buộc nhập', 'email.email' => 'Sai định dạng email', 'phone.numeric' => 'Số điện thoại bao gồm số', 'mssv.alpha_num' => 'Mã sinh viên bao gồm chữ số', 'class.alpha_num' => 'Lớp học bao gồm chữ số' ]; } public function authorize() { return true; } } class AdminBookRequest extends FormRequest { public function rules(Request $request) { return [ 'bok_category_id' => 'bail|required|numeric', 'bok_title' => 'bail|required|min:10|max:70|unique:books,bok_title,' $request->id, 'bok_description' => 'bail|required', 'bok_content' => 'bail|required', 'bok_author' => 'bail|required', 'bok_pushlisher' => 'bail|required', 'bok_company' => 'bail|required', 'bok_price_real' => 'bail|required|numeric', 'bok_size' => 'bail|required', 'bok_weight' => 'bail|required', 'bok_page' => 'bail|required', ]; } public function messages() { return [ 'bok_category_id.required' => 'Bạn chưa chọn chuyên mục', 'bok_category_id.numeric' => 'Chuyên mục bắt buộc số', 79 79 'bok_title.required' => 'Bạn chưa nhập nội dung', 'bok_title.min' => 'Tiêu đề tối thiểu 10 kí tự', 'bok_title.max' => 'Tiêu đề nhập tối đa 70 kí tự', 'bok_title.unique' => 'Cuốn sách tồn tại', 'bok_description.required' => 'Bạn chưa nhập nội dung mô tả', 'bok_content.required' => 'Bạn chưa nhập nội dung xem trước', 'bok_author.required' => 'Bạn chưa nhập tác giả', 'bok_pushlisher.required' => 'Bạn chưa nhập nhà phát hành', 'bok_company.required' => 'Bạn chưa nhập nhà xuất bản', 'bok_price_real.required' => 'Bạn chưa nhập giá tiền', 'bok_price_real.numeric' => 'Giá tiền bao gồm số', 'bok_size.required' => 'Bạn chưa nhập kích thước', 'bok_weight.required' => 'Bạn chưa nhập trọng lượng', 'bok_page.required' => 'Bạn chưa nhập số trang', ]; } public function authorize() { return true; } } Phục lục 2: Mã nguồn đảm bảo an tồn q trình lấy lại mật public function resetPassword(Request $request) { //1 Checktoken $reset_password = PasswordReset::where('token', $request->token)->first(); if (!$reset_password) { abort(404); } $expire = Carbon::parse($reset_password->created_at)->diffInMinutes(now()); $viewDataError = [ 'type' => 'alert', 'alert' => 'Người dùng, token không hợp lệ' ]; if ($expire > 5) { return view('auth.reset_password')->with($viewDataError); } //2 Checkemail $user = $this->userRepository->findOneById($request->id); if (!$user || ($user->email != $reset_password->email)) { return view('auth.reset_password')->with($viewDataError); } $viewDataSuccess = [ 'id' => $user->id, 'token' => $request->token, 'type' => 'change_password', ]; return view('auth.reset_password')->with($viewDataSuccess); } public function storeChangePassword(Request $request) { //1 Checktoken $reset_password = PasswordReset::where('token', $request->token)->first(); if (!$reset_password) { abort(404); } $expire = Carbon::parse($reset_password->created_at)->diffInMinutes(now()); $viewDataError = [ 'type' => 'alert', 80 80 'alert' => 'Người dùng, token không hợp lệ' ]; if ($expire > 5) { return view('auth.reset_password')->with($viewDataError); } //2 Checkemail $user = $this->userRepository->findOneById($request->id); if (!$user || ($user->email != $reset_password->email)) { return view('auth.reset_password')->with($viewDataError); } //3 Save password $user = $this->userRepository->updateById($request->id, [ 'password' => bcrypt($request->new_password), ]); if (!$user) { $this->alertError(); return redirect()->back(); } //4 Xố token PasswordReset::where('token', $request->token)->delete(); $this->alertSuccess('Đổi mật thành cơng'); return redirect()->route('get.user_login.index'); } Phụ lục 3: Sản phẩm online Địa trang độc giả: https://devplus.top/dang-nhap Địa trang admin: https://devplus.top/api-admin/dang-nhap Tài khoản admin: admin@gmail.com ungdinhhuong@@ Tài khoản độc giả: user@gmail.com ungdinhhuong@@ 81 81 Xác nhận người hướng dẫn …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Hà nội, ngày NGƯỜI HƯỚNG DẪN KHOA HỌC TS Phạm Văn Hưởng NGƯỜI THỰC HIỆN Ứng Đình Hướng 82 82 tháng năm 2019 ... hoạch cho phát triển trang web Đây lúc tạo sơ đồ trang web Sơ đồ trang web danh sách tất lĩnh vực chủ đề trang web, chủ đề phụ (nếu có) Điều phục vụ hướng dẫn nội dung có trang web, cần thiết để phát... trang web sau xác định tất tác vụ, phải tập trung vào tất tác vụ sở phát triển trang web Các quy trình cần thiết để hỗ trợ tính trang web xác định (sitemap) đồ trang web, xác định cấu trúc trang,... tính an tồn ứng dụng web phụ thuộc vào thành phần có liên quan môi trường mà ứng dụng web hoạt động Để đảm bảo an toàn ứng dụng web, cần phải đảm bảo an tồn từ phía thành phần 1.5 Đánh giá an toàn

Ngày đăng: 31/08/2021, 16:13

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Quá trình hoạt động ứng dụng web - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 1.1. Quá trình hoạt động ứng dụng web (Trang 11)
Hình 2.1. Quy trình phát triển ứng dụng web - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 2.1. Quy trình phát triển ứng dụng web (Trang 24)
Hình 3.1. Sơ đồ phân cấp chức năng - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.1. Sơ đồ phân cấp chức năng (Trang 48)
Hình 3.2. Cơ chế xác thực thông qua middleware - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.2. Cơ chế xác thực thông qua middleware (Trang 50)
Các sách được đặt mượn bởi các sinh viên sẽ được lưu vào bảng “tickets”, chi tiết phiếu mượn lưu vào bảng “ticket_details” - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
c sách được đặt mượn bởi các sinh viên sẽ được lưu vào bảng “tickets”, chi tiết phiếu mượn lưu vào bảng “ticket_details” (Trang 54)
Hình 3.3. Lược đồ cơ sở dữ liệu - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.3. Lược đồ cơ sở dữ liệu (Trang 54)
Bảng 4.5. Phiếu mượn (tickets) - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Bảng 4.5. Phiếu mượn (tickets) (Trang 56)
Hình 3.5. Sơ đồ tuần tự chức năng cập nhật thông tin - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.5. Sơ đồ tuần tự chức năng cập nhật thông tin (Trang 57)
Hình 3.4. Sơ đồ tuần tự chức năng đăng nhập - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.4. Sơ đồ tuần tự chức năng đăng nhập (Trang 57)
Hình 3.7. Sơ đồ tuần tự chức năng đổi mật khẩu - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.7. Sơ đồ tuần tự chức năng đổi mật khẩu (Trang 58)
Hình 3.6. Sơ đồ tuần tự chức năng khôi phục mật khẩu - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.6. Sơ đồ tuần tự chức năng khôi phục mật khẩu (Trang 58)
Hình 3.9. Sơ đồ tuần tự chức năng tìm kiếm sách - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.9. Sơ đồ tuần tự chức năng tìm kiếm sách (Trang 59)
Hình 3.8. Sơ đồ tuần tự chức năng mượn sách - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.8. Sơ đồ tuần tự chức năng mượn sách (Trang 59)
Hình 3.12. Sơ đồ tuần tự chức năng thêm mới sách - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.12. Sơ đồ tuần tự chức năng thêm mới sách (Trang 60)
Hình 3.11. Sơ đồ tuần tự chức năng xem sách đã mượn - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.11. Sơ đồ tuần tự chức năng xem sách đã mượn (Trang 60)
Hình 3.13. Sơ đồ tuần tự chức năng thêm mới người dùng - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.13. Sơ đồ tuần tự chức năng thêm mới người dùng (Trang 61)
Hình 3.14. Sơ đồ tuần tự chức năng quản lý người dùng - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.14. Sơ đồ tuần tự chức năng quản lý người dùng (Trang 61)
Hình 3.15. Validate đổi mật khẩu - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.15. Validate đổi mật khẩu (Trang 64)
Hình 3.18. Danh sách route admin - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.18. Danh sách route admin (Trang 65)
Hình 3.17. Danh sách route user - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.17. Danh sách route user (Trang 65)
Hình 3.20. Giao thức HTTP - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.20. Giao thức HTTP (Trang 67)
Hình 3.21. Giao thức HTTP bị tấn công - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.21. Giao thức HTTP bị tấn công (Trang 68)
Hình 3.22. Hoạt động của giao thức SSL - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.22. Hoạt động của giao thức SSL (Trang 69)
Hình 3.23. Minh hoạ chống SQL Injection - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.23. Minh hoạ chống SQL Injection (Trang 72)
Hình 3.25. Minh hoạ SQL Injection - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.25. Minh hoạ SQL Injection (Trang 73)
Hình 3.24. Minh hoạ XSS - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.24. Minh hoạ XSS (Trang 73)
Hình 3.26. Minh hoạ lỗi CSRF - Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web
Hình 3.26. Minh hoạ lỗi CSRF (Trang 74)

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

TÀI LIỆU LIÊN QUAN

w