Tải bản đầy đủ (.pdf) (44 trang)

bài 4 bảo mật cho website

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.96 MB, 44 trang )

Bài 4
Bảo mật cho website
Kết nối bảo mật và giao thức SSL
Xác thực cho website
Mã hóa và giải mã dữ liệu
Mục tiêu
Bài 4 - Bảo mật cho website
2
Giới thiệu về kết nối bảo mật
Lấy một chứng nhận bảo mật điện tử
Yêu cầu một kết nối bảo mật
Chuyển hướng một kết nối bảo mật
Kết nối bảo mật và giao thức SSL
Bài 4 - Bảo mật cho website
3
Hình ảnh một yêu cầu kết nối bảo mật:
Kết nối bảo mật
Bài 4 - Bảo mật cho website
4
Kết nối bảo mật (secure connection): ngăn chặn
dữ liệu bị đọc được trong quá trình truyền tải
qua Internet
Kết nối được bảo mật thường chậm hơn kết nối
thường: phải mã hóa và giải mã dữ liệu
Cách xác định kết nối bảo mật: HTTPS
Kết nối bảo mật
Bài 4 - Bảo mật cho website
5
Hai loại giao thức:
SSL (Secure Sockets Layer): giao thức cũ
TLS (Transport Layer Security): giao thức mới, chỉ có


các trình duyệt mới ra gần đây mới hỗ trợ
Xác thực SSL phía máy chủ
Xác thực SSL phía máy khách
Một số khái niệm
Bài 4 - Bảo mật cho website
6
Hình ảnh một chứng nhận bảo mật điện tử:
Chứng nhận bảo mật điện tử
Bài 4 - Bảo mật cho website
7
Chứng nhận phía máy chủ
Chứng nhận phía máy khách
Hai loại
chứng nhận bảo mật điện tử
Bài 4 - Bảo mật cho website
8
Trước khi kết nối được thiết lập, máy chủ sử
dụng xác thực SSL phía máy chủ để tự xác thực
bằng cách cung cấp một chứng nhận bảo mật
điện tử cho trình duyệt
Mặc định thì trình duyệt sẽ chấp nhận các chứng
nhận bảo mật điện tử từ các nguồn tin cậy
(trusted sources)
Cơ chế làm việc của SSL
Bài 4 - Bảo mật cho website
9
Nếu chứng nhận bảo mật không phải của nguồn
tin cậy thì trình duyệt thông báo để người dùng
tự quyết định
Trong một vài trường hợp, máy khách có thể tự

xác nhận với xác thực SSL phía máy khách bằng
cách cài sẵn chứng nhận bảo mật điện tử
Cơ chế làm việc của SSL
Bài 4 - Bảo mật cho website
10
Để sử dụng SSL trong ứng dụng web thì bạn cần
mua một chứng nhận bảo mật điện tử
Các loại cấp độ bảo mật SSL:
40 bit
56 bit
128 bit
256 bit
Khái niệm
Bài 4 - Bảo mật cho website
11
Cơ quan chứng nhận (Certification Authority -
CA)
Cơ quan đăng ký (Registration Authority - RA)
Khái niệm
Bài 4 - Bảo mật cho website
12
Địa chỉ kiểm tra
kết nối bảo mật trong mạng nội bộ
Bài 4 - Bảo mật cho website
13
//Kiểm tra kết nối bảo mật được thiết lập đúng chưa
https://localhost/
//Yêu cầu một kết nối bảo mật
https://localhost/book_apps/ch21_ssl/
//Trả về một kết nối thông thường

http://localhost/book_apps.ch21_ssl/
Địa chỉ kiểm tra
kết nối bảo mật trên Internet
Bài 4 - Bảo mật cho website
14
//Yêu cầu một kết nối bảo mật
/>//Trả về một kết nối thông thường
/>Thành phần:
HTTPS
HTTP_HOST
REQUEST_URI
Mảng $_SERVER
Bài 4 - Bảo mật cho website
15
File chuyển hướng
tới kết nối bảo mật
Bài 4 - Bảo mật cho website
16
<?php
//Đảm bảo trang web sử dụng kết nối bảo mật
if (!isset($_SERVER['HTTPS'])) {
$url = 'https://' . $_SERVER['HTTP_HOST'] .
$_SERVER['REQUEST_URI'];
header("Location: " . $url);
exit();
}
?>
Ba loại xác thực
Sử dụng xác thực dạng form
Sử dụng xác thực cơ bản

Sử dụng xác thực (authentication)
Bài 4 - Bảo mật cho website
17
Xác thực dạng form:
Cho phép nhà phát triển viết form đăng nhập để lấy
tên tài khoản và mật khẩu
Cho phép chỉ yêu cầu tên tài khoản và mật khẩu một
lần duy nhất trong mỗi phiên làm việc
Mặc định không mã hóa tên tài khoản và mật khẩu
trước khi gửi lên máy chủ
Ba loại xác thực
Bài 4 - Bảo mật cho website
18
Xác thực cơ bản:
Trình duyệt hiển thị hộp thoại để lấy tên tài khoản và
mật khẩu
Đòi hỏi trình duyệt gửi tên tài khoản và mật khẩu cho
mỗi trang được bảo vệ
Mặc định không mã hóa tên tài khoản và mật khẩu
trước khi gửi lên máy chủ
Xác thực rút gọn:
Trình duyệt hiển thị hộp thoại để lấy tên tài khoản và
mật khẩu
Mã hóa tên tài khoản và mật khẩu trước khi gửi lên
máy chủ
Ba loại quá trình xác thực
Bài 4 - Bảo mật cho website
19
Hàm sha1($string [, $bin])
Ví dụ: Lưu trữ và xác nhận mật khẩu:

Hàm mã hóa dữ liệu
Bài 4 - Bảo mật cho website
20
<?php
function add_admin($email, $password) {
global $db;
$password = sha1($email . $password);
$query = 'INSERT INTO administrators (emailAddress,
password) VALUES (:email, :password)';
$statement = $db->prepare($query);
$statement->bindValue(':email', $email);
$statement->bindValue(':password', $password);
$statement->execute();
$statement->closeCursor();
}
Hàm mã hóa dữ liệu
Bài 4 - Bảo mật cho website
21
function is_valid_admin_login($email, $password) {
global $db;
$query = 'SELECT adminID FROM administrators WHERE
emailAddress=:email AND password=:password';
$statement = $db->prepare($query);
$statement->bindValue(':email', $email);
$statement->bindValue(':password', $password);
$statement->execute();
$valid = ($statement->rowCount() == 1);
$statement->closeCursor();
return $valid;
}

?>
Form đăng nhập
cho xác thực dạng form
Bài 4 - Bảo mật cho website
22
Trang web được bảo vệ
(protected page)
Bài 4 - Bảo mật cho website
23
Mã điều khiển
cho trang web được bảo vệ
Bài 4 - Bảo mật cho website
24
<?php
//Bắt đầu session và include các hàm cần thiết
session_start();
require_once('model/database.php');
require_once('model/admin_db.php');
//Lấy thông tin về hành động
if (isset($_POST['action'])) {
$action = $_POST['action'];
} else if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = 'show_admin_menu';
}
//Nếu người dùng chưa đăng nhập thì bắt buộc phải đăng
nhập
if (!isset($_SESSION['is_valid_admin'])) {
$action = 'login';

}
Mã điều khiển
cho trang web được bảo vệ
Bài 4 - Bảo mật cho website
25
//Thực thi hành động
switch($action) {
case 'login':
$email = $_POST['email'];
$password = $_POST['password'];
if (is_valid_admin_login($email, $password))
{
$_SESSION['is_valid_admin'] = true;
include('view/admin_menu.php');
} else {
$login_message = 'You must login to
view this page';
include('view/login.php');
}
break;

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×