Bài giảng Lập trình Web: Phân quyền người dùng
lượt xem 7
download
Nội dung bài giảng trình bày quá trình phân quyền người dùng và sự phức tạp của phân quyền người dùng phụ thuộc, quá trình tăng tốc website. Để hiểu rõ hơn, mời các bạn tham khảo chi tiết nội dung bài giảng này.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình Web: Phân quyền người dùng
- Phân quyền người dùng
- Phân quyền người dùng Phân quyền nhằm trả lời các câu hỏi: Người dùng nào? Được làm gì? Trên đối tượng nào? Tổ chức phân quyền trong ứng dụng web trả lời 3 câu hỏi trên Sự phức tạp của phân quyền người dùng phụ thuộc Qui mô của ứng dụng Số lượng và loại (nhóm) người dùng Trình độ và kinh nghiệm của người thiết kế phát triển 2
- Phân quyền người dùng Tổ chức và kiểm tra người dùng dựa vào bảng mô tả Người dùng Quyền Tài nguyên / Nhóm / Module An, Hoa Xem Tin An, Hoa Thêm Tin An, Hoa Sửa Tin An, Hoa Xóa Tin An Xem Loại tin An Thêm Loại tin … … … 3
- Phân quyền người dùng Về tổ chức dữ liệu: cần 2 bảng là người dùng và nhóm Mỗi người dùng trong 1 hay nhiều nhóm Mỗi nhóm • Diễn tả một hành động (xem, thêm, …) trên một loại tài nguyên • Hoặc diễn tả khả năng quản lý dữ liệu theo module (quản trị laptop, tin, quảng cáo, user) • Hoặc diễn tả theo phòng ban chức năng Nhiều loại tài nguyên, ví dụ: loại tin, tin, … • Số lượng tài nguyên có cố định hay không Quyền áp dụng cho nhóm hay từng tài nguyên riêng lẻ 4
- Phân quyền người dùng Kiểm tra quyền Được thực hiện đầu mọi trang php có nhu cầu kiểm tra quyền • Code kiểm tra quyền đặt trong 1 file riêng, sau đó dùng require Hàm kiểm tra quyền dựa vào các group mà người dùng đăng nhập là thành viên rồi tra trong bảng Roles Khi người dùng login, username và userid được lưu trong session 5
- Tăng tốc website
- Tăng tốc website Website hoạt động nhanh hay chậm phụ thuộc vào nhiều yếu tố: Khả năng của server Băng thông của đường truyền Vị trí địa lý nơi đặt server Code của website có được tối ưu hay không Trong phạm vi của môn này chúng ta chỉ quan tâm đến yếu tố code của website 7
- Tăng tốc website Giảm bớt các request Thiết kế đơn giản: sử dụng lượng vừa phải các hình ảnh, flash, script, … trên website Gom các file CSS, JavaScript lại với nhau nếu được Sử dụng CSS sprites (gom nhiều ảnh lại với nhau thành một) • Nên gom các ảnh nhỏ thành 1 cột dọc, để xác định tọa độ cho dễ • (http://www.csssprites.com, http://spritegen.com) Sử dụng Image Maps: Gom các ảnh nhỏ thành 1 ảnh lớn 8
- Tăng tốc website Sử dụng Content Delivery Network (CDN) Đặt website ở các vùng địa lý mà phần lớn người dùng website của bạn ở đó Sử dụng các CDN đang hoạt động • Ví dụ Google đã lưu trữ những framework như jQuery, prototype, MooTools, Dojo, script.aculo.us trên hệ thống server. 9
- Tăng tốc website VD sử dụng jQuery CDN VD sử dụng Bootstrap CDN
- Tăng tốc website Nén HTML với gzip: đa số các trình duyệt đều có khả năng giải nén những trang html Các cách để nén với thư viện zlib compress trong php php_flag zlib.output_compression On // .htaccess zlib.output_compression = On // php.ini Hoặc đặt lệnh sau ở đầu trang ini_set(“zlib.output_compression”, “On”) hoặc ob_start('ob_gzhandler') 11
- Tăng tốc website Cache tại client: có hai cách thức điều khiển cache ở client thông qua http header: expire và cache-control Expire $offset = 3600 * 24; $expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"; header($expire); Cache-Control $expire = "Cache-Control: max-age=3600, must-revalidate"; header($expire); 12
- Tăng tốc website Tối ưu các truy vấn sql Giảm join các bảng Index hợp lý các field Chấp nhận dữ liệu dư thừa để tăng tốc độ xử lý Tuyệt đối không dùng SELECT *, chỉ select những field cần dùng 13
- Tăng tốc website PHP Cache Opcode: là code của các trang PHP đã được dịch xong và lưu trong share memory để dùng lại mà không phải thông dịch từng lệnh trong file khi có request Có nhiều giải pháp như APC, XCache, eAccelerator File caching: Nội dung file được lưu ở 1 nơi nào đó sau khi kết xuất lần đầu tiên. Với những request đến sau, chỉ đọc file kết quả rồi trả về ngay lập tức 14
- Tăng tốc website PHP Cache Memory cache • Những dữ liệu của riêng từng user, có thể lưu vào session để dùng ngay như username, họ tên, email, giới tính…. • Những dữ liệu kết xuất lần đầu tiên, thay vì lưu trong file cache, bạn có thể lưu trong 1 table nào đó để có thể dùng lại 15
- Bảo mật website
- Bảo mật website Bảo Mật Session: Khi hàm session_start() được gọi, 1 session được tạo ra Sau đó php sẽ send header để tạo 1 cookie tên PHPSESSID có giá trị là sessionid Mỗi lần request, sessionid sẽ được gửi lại trên server Nếu user A lấy được sessionid của user B đang login, coi như đã A đã được login với tư cách là B Click here 17
- Bảo mật website Bảo Mật Session: Giải pháp: • Gọi lại hàm session_regenerate_id() để sinh sessionid mới • Hoặc có thể lưu thêm 1 số thông tin của user vào session, và kiểm tra lại 18
- Bảo mật website Chống SQL Injection (Database Security) Khi login với username là a' or 1=1 limit 0,1 # và password là 123 thì câu lệnh trở thành SELECT * FROM user WHERE username = 'a' OR 1 = 1 limit 0,1 # Password=123 luôn có dữ liệu, vì từ dấu # trở về sau bị bỏ qua (nghĩa là MySql không quan tâm # Password=123 ) 19
- Bảo mật website Chống SQL Injection Giải pháp: • Bảo vệ các câu lệnh SQL là bằng cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ người dùng • Trong file php.ini cấu hình magic_quotes_gpc = On 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình web bài 3: Sử dụng màu sắc trong Illustration
27 p | 182 | 38
-
Bài giảng Lập trình web bài 1: Làm quen với Adobe Illustrator CS4 & không gian làm việc
40 p | 200 | 37
-
Bài giảng Lập trình web bài 2: Làm quen với công cụ vẽ và sử dụng Symbol bảng Library
51 p | 169 | 30
-
Bài giảng Lập trình Web ASP.NET: Chương 1 - ĐH Lạc Hồng
64 p | 137 | 27
-
Bài giảng Lập trình Web động với PHP/MySQL - Tống Phước Khải
132 p | 184 | 25
-
Bài giảng Lập trình Web: Chương 1 - Ths. Trần Phi Hảo
25 p | 177 | 20
-
Bài giảng Lập trình web bài 6: Sử dụng hiệu ứng, độ trong suốt và xuất file
27 p | 147 | 20
-
Bài giảng Lập trình web bài 4: Làm việc với công cụ vẽ và văn bản
27 p | 130 | 19
-
Bài giảng Lập trình web bài 7: Kỹ thuật hòa trộn nâng cao
27 p | 104 | 18
-
Bài giảng Lập trình web động với PHP/MySQL: Phần 3 - Tống Phước Khải (tổng hợp & biên dịch)
44 p | 56 | 6
-
Bài giảng Lập trình web động với PHP/MySQL: Phần 2 - Tống Phước Khải (tổng hợp & biên dịch)
47 p | 70 | 6
-
Bài giảng Lập trình Web: Chương 2 - Trần Công Án
68 p | 107 | 6
-
Bài giảng Lập trình web động với PHP/MySQL: Phần 1 - Tống Phước Khải (tổng hợp & biên dịch)
41 p | 50 | 5
-
Bài giảng Lập trình web 1: Chương 10 - Nguyễn Huy Khánh
54 p | 68 | 4
-
Bài giảng Lập trình web: Tổng quan thiết kế và lập trình Web - Trần Phước Tuấn
27 p | 95 | 4
-
Bài giảng môn Lập trình Web: Phần 1 - TS. Trần Quang Diệu
23 p | 36 | 3
-
Bài giảng môn Lập trình Web: Phần 2.2 - TS. Trần Quang Diệu
42 p | 11 | 3
-
Bài giảng Lập trình Web: Tổng quan về Web
23 p | 35 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn