SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
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
https://www.murach.com/
//Trả về một kết nối thông thường
http://www.murach.com/
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;
Mã điều khiển
cho trang web được bảo vệ
Bài 4 - Bảo mật cho website 26
case 'show_admin_menu':
include('view/admin_menu.php');
break;
case 'show_product_manager':
include('view/product_manager.php');
break;
case 'show_order_manager':
include('view/order_manager.php');
break;
case 'logout':
$_SESSION = array();
session_destroy();
$login_message = 'You have been logged out';
include('view/login.php');
break;
}
File xác nhận tài khoản admin:
Đoạn mã ở đầu trang đăng nhập:
Áp dụng
Bài 4 - Bảo mật cho website 27
<?php
//Đảm bảo người dùng tài khoản admin đúng
if (!isset($_SESSION['is_valid_admin'])) {
header("Location: .");
}
?>
<?php
//Đòi hỏi kết nối bảo mật
require_once('util/secure_conn.php');
?>
Đoạn mã ở đầu các trang được bảo vệ:
Áp dụng
Bài 4 - Bảo mật cho website 28
<?php
//Đòi hỏi kết nối bảo mật
require_once('util/secure_conn.php');
//Đòi hỏi tài khoản người dùng đúng
require_once('util/valid_admin.php');
?>
Hình ảnh minh họa
cho xác thực cơ bản
Bài 4 - Bảo mật cho website 29
Trang web được bảo vệ
Bài 4 - Bảo mật cho website 30
Trang web không được xác thực
Bài 4 - Bảo mật cho website 31
Thành phần:
PHP_AUTH_USER
PHP_AUTH_PW
Mảng $_SERVER
cho xác thực cơ bản
Bài 4 - Bảo mật cho website 32
Mã PHP đảm bảo tài khoản người dùng là đúng:
Ví dụ
Bài 4 - Bảo mật cho website 33
<?php
require_once('model/database.php');
require_once('model/admin_db.php');
$email = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
if (!is_valid_admin_login($email, $password)) {
header('WWW-Authenticate: Basic realm="Admin"');
header('HTTP/1.0 401 unauthorized');
include('unauthorized.php');
exit();
}
?>
Mã PHP ở đầu mỗi trang web được bảo vệ:
Ví dụ
Bài 4 - Bảo mật cho website 34
<?php
//Đòi hỏi kết nối bảo mật
require_once('util/secure_conn.php');
//Đòi hỏi tài khoản admin đúng
require_once('util/valid_admin.php');
?>
Giới thiệu thư viện mcrypt
Cách mã hóa và giải mã dữ liệu
Lớp chứa dữ liệu được mã hóa
Mã hóa và giải mã dữ liệu
Bài 4 - Bảo mật cho website 35
PHP cung cấp sẵn thư viện mcrypt để hỗ trợ mã
hóa và giải mã dữ liệu
Một số khái niệm:
Cipher
Chế độ hoạt động (mode of operation)
CBC (cipher-block chaining)
Vector khởi tạo (Initialization Vector - IV)
Thư viện mcrypt
Bài 4 - Bảo mật cho website 36
Một số hàm trong thư viện mcrypt:
Mcrypt_get_iv_size($cipher, $mode)
Mcrypt_create_iv($ivs)
Mcrypt_encrypt($cipher, $key, $data, $move, $iv)
Mcrypt_decrypt(($cipher, $key, $data, $move, $iv)
Thư viện mcrypt
Bài 4 - Bảo mật cho website 37
Một số hằng trong thư viện mcrypt:
MCRYPT_RIJNDAEL_128
MCRYPT_RIJNDAEL_192
MCRYPT_RIJNDAEL_256
MCRYPT_MODE_CBC
Hai hàm chuyển đổi giữa dữ liệu nhị phân và
base64:
Base64_encode($data)
Base64_decode($data)
Thư viện mcrypt
Bài 4 - Bảo mật cho website 38
Ví dụ
Bài 4 - Bảo mật cho website 39
<?php
$credit_card_no = '41111111111';
//Khai báo các biến
$cipher = MCRYPT_RIJDAEL_128;
$mode = MCRYPT_MODE_CBC;
$key = sha1('secretKey', true);
$ivs = mcrypt_get_iv_size($cipher, $mode);
$iv = mcrypt_create_iv($ivs);
//Mã hóa dữ liệu
$data = mcrypt_encrypt($cipher, $key, $credit_card_no, $mode,
$iv);
$data = base64_encode($data);
echo 'Encrypted data: '.$data.'<br/>';
//Giải mã dữ liệu
$data = base64_decode($data);
$credit_card_no = mcrypt_decrypt($cipher, $key,
$credit_card_no, $mode, $iv);
echo 'Decrypted data: '.$credit_card_no.'<br/>';
?>
Lớp Crypt
Bài 4 - Bảo mật cho website 40
class Crypt {
private $key;
private $ivs;
private $iv;
private $cipher;
private $mode;
public function __construct() {
$this->cipher = MCRYPT_RIJDAEL_128;
$this->mode = MCRYPT_MODE_CBC;
$this->key = sha1('secretKey', true);
$this->ivs = mcrypt_get_iv_size($this-
>cipher, $this->mode);
$this->iv = mcrypt_create_iv($this->ivs);
}
Lớp Crypt
Bài 4 - Bảo mật cho website 41
public function encrypt($data) {
$data = mcrypt_encrypt($this->cipher, $this-
>key, $data, $this->mode, $this->iv);
$data = base64_encode($data);
return $data;
}
public function decrypt($data) {
$data = base64_decode($data);
$data = mcrypt_decrypt($this->cipher, $this-
>key, $data, $this->mode, $this->iv);
return $data;
}
}
?>
Sử dụng lớp Crypt
Bài 4 - Bảo mật cho website 42
require 'crypt.php';
$credit_card_no = '4111111111111111111';
//Tạo đối tượng Crypt
$crypt = new Crypt();
//Sử dụng đối tượng Crypt để mã hóa dữ liệu
$data = $crypt->encrypt($credit_card_no);
echo 'Encrypted data: ' . $data . '<br />';
//Sử dụng đối tượng Crypt để giải mã dữ liệu
$credit_card_no = $crypt->decrypt($data);
echo 'Decrypted data: ' . $credit_card_no . '<br />';
Kết nối bảo mật sử dụng giao thức TLS và SSL
Khi trình duyệt gửi yêu cầu tới máy chủ qua kết
nối bảo mật thì máy chủ tự xác thực bằng chứng
nhận bảo mật điện tử (digital secure certificate)
Bài 4 - Bảo mật cho website 43
Tổng kết bài học
Quy trình sử dụng SSL trong ứng dụng web:
Người dùng gửi yêu cầu mua chứng nhận bảo mật
điện tử tới CA
CA xác thực thông tin yêu cầu quá RA
CA gửi cho người dùng chứng nhận bảo mật điện tử
Người dùng gửi cho người quản trị hosting để cài lên
máy chủ
Mã hóa dữ liệu bằng hàm sha1
PHP cung cấp thư viện mcrypt hỗ trợ mã hóa và
giải mã dữ liệu
Tổng kết bài học
Bài 4 - Bảo mật cho website 44

Weitere ähnliche Inhalte

Was ist angesagt?

Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTMasterCode.vn
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2KhanhPham
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Wp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenWp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenKhanhPham
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTMasterCode.vn
 
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 KhanhPham
 
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10KhanhPham
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtKhanhPham
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản KhanhPham
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7KhanhPham
 

Was ist angesagt? (20)

Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Web3012 slide 8
Web3012   slide 8Web3012   slide 8
Web3012 slide 8
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
 
Web201 slide 7
Web201   slide 7Web201   slide 7
Web201 slide 7
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Wp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenWp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyen
 
Web201 slide 2
Web201   slide 2Web201   slide 2
Web201 slide 2
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
 
Slide 00 gioi thieu
Slide 00   gioi thieuSlide 00   gioi thieu
Slide 00 gioi thieu
 
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8 Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
Zend Framework 2 - Thao tác Database trong Zend Framework 2 - Bài 8
 
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
Tài liệu Zend Framework 2 : Thêm dữ liệu vào database trong ZF2 - Bài 10
 
Web3012 assignment
Web3012   assignmentWeb3012   assignment
Web3012 assignment
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
 
Slide 01
Slide 01Slide 01
Slide 01
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
 

Andere mochten auch

TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERTIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERconglongit90
 
Bảo Mật Thông Tin Nơi Công Sở
Bảo Mật Thông Tin Nơi Công SởBảo Mật Thông Tin Nơi Công Sở
Bảo Mật Thông Tin Nơi Công SởDTU Corp.
 
Công nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐTCông nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐTThuy Na
 
Chương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPT
Chương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPTChương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPT
Chương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPTMasterCode.vn
 
Bài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDL
Bài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDLBài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDL
Bài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDLNguyen Khanh
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionMasterCode.vn
 
Bai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxt
Bai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxtBai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxt
Bai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxtstartover123
 
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webMasterCode.vn
 
Bài 6 Sử dụng hàm - Giáo trình FPT
Bài 6 Sử dụng hàm - Giáo trình FPTBài 6 Sử dụng hàm - Giáo trình FPT
Bài 6 Sử dụng hàm - Giáo trình FPTMasterCode.vn
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTMasterCode.vn
 
Bai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tinBai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tinthaohien1376
 
Bài 4 Quản trị domain & hosting Windows - Quản trị website
Bài 4 Quản trị domain & hosting Windows - Quản trị websiteBài 4 Quản trị domain & hosting Windows - Quản trị website
Bài 4 Quản trị domain & hosting Windows - Quản trị websiteMasterCode.vn
 
Bài 3 Cài đặt và quản lý các Extension của Joomla
Bài 3 Cài đặt và quản lý các Extension của JoomlaBài 3 Cài đặt và quản lý các Extension của Joomla
Bài 3 Cài đặt và quản lý các Extension của JoomlaMasterCode.vn
 
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị websiteBài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị websiteMasterCode.vn
 
Bài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị website
Bài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị websiteBài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị website
Bài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị websiteMasterCode.vn
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...MasterCode.vn
 
Bài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web Joomla
Bài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web JoomlaBài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web Joomla
Bài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web JoomlaMasterCode.vn
 
Bài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng Joomla
Bài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng JoomlaBài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng Joomla
Bài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng JoomlaMasterCode.vn
 

Andere mochten auch (20)

TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVERTIM HIEU SSL VA UNG DUNG TREN WEB SERVER
TIM HIEU SSL VA UNG DUNG TREN WEB SERVER
 
Bảo Mật Thông Tin Nơi Công Sở
Bảo Mật Thông Tin Nơi Công SởBảo Mật Thông Tin Nơi Công Sở
Bảo Mật Thông Tin Nơi Công Sở
 
Công nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐTCông nghệ bảo mật trong thanh toán điện tử-TMĐT
Công nghệ bảo mật trong thanh toán điện tử-TMĐT
 
7314 l15 slides_vn
7314 l15 slides_vn7314 l15 slides_vn
7314 l15 slides_vn
 
Wire Less
Wire LessWire Less
Wire Less
 
Chương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPT
Chương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPTChương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPT
Chương 3 Mạng Ethernet và mạng Wi-Fi - Giáo trình FPT
 
Bài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDL
Bài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDLBài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDL
Bài 13. BẢO MẬT THÔNG TIN TRONG CÁC HỆ CSDL
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng Extension
 
Bai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxt
Bai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxtBai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxt
Bai giang-an-toan-va-bao-mat-he-thong-thong-tin-lxt
 
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng webBài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
Bài 6 Tải file và hình ảnh lên website - Xây dựng ứng dụng web
 
Bài 6 Sử dụng hàm - Giáo trình FPT
Bài 6 Sử dụng hàm - Giáo trình FPTBài 6 Sử dụng hàm - Giáo trình FPT
Bài 6 Sử dụng hàm - Giáo trình FPT
 
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
 
Bai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tinBai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tin
 
Bài 4 Quản trị domain & hosting Windows - Quản trị website
Bài 4 Quản trị domain & hosting Windows - Quản trị websiteBài 4 Quản trị domain & hosting Windows - Quản trị website
Bài 4 Quản trị domain & hosting Windows - Quản trị website
 
Bài 3 Cài đặt và quản lý các Extension của Joomla
Bài 3 Cài đặt và quản lý các Extension của JoomlaBài 3 Cài đặt và quản lý các Extension của Joomla
Bài 3 Cài đặt và quản lý các Extension của Joomla
 
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị websiteBài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
Bài 6: DEDICATED SERVER/VIRTUAL PRIVATE SERVER (VPS HOSTING) - Quản trị website
 
Bài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị website
Bài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị websiteBài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị website
Bài 3 Quản trị hosting trong cPanel (tiếp) - Quản trị website
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
 
Bài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web Joomla
Bài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web JoomlaBài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web Joomla
Bài 4 Hướng dẫn chỉnh sửa và thiết kế giao diện web Joomla
 
Bài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng Joomla
Bài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng JoomlaBài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng Joomla
Bài 9 Hướng dẫn thiết kế website bán hàng trực tuyến bằng Joomla
 

Ähnlich wie Bài 4 Bảo mật cho website - Xây dựng ứng dụng web

Ssl it-slideshares.blogspot.com
Ssl it-slideshares.blogspot.comSsl it-slideshares.blogspot.com
Ssl it-slideshares.blogspot.comphanleson
 
Bảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NETBảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NETHUST
 
Run Openstack with SSL
Run Openstack with SSLRun Openstack with SSL
Run Openstack with SSLLam To
 
PHP.pdf
PHP.pdfPHP.pdf
PHP.pdfTinPh6
 
Bai18 web app_security_scheme
Bai18 web app_security_schemeBai18 web app_security_scheme
Bai18 web app_security_schemeHoang Son
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHPNIIT - ICT Hà Nội
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsdVu Hung Nguyen
 
Chương 5: PHP&MYSQL
Chương 5: PHP&MYSQLChương 5: PHP&MYSQL
Chương 5: PHP&MYSQLHồ Lợi
 
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTBài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTMasterCode.vn
 
Reveal the Power of Php
Reveal the Power of PhpReveal the Power of Php
Reveal the Power of PhpVõ Duy Tuấn
 
php_nangcao [compatibility mode]
php_nangcao [compatibility mode]php_nangcao [compatibility mode]
php_nangcao [compatibility mode]vokhuyet187
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 

Ähnlich wie Bài 4 Bảo mật cho website - Xây dựng ứng dụng web (20)

Ssl it-slideshares.blogspot.com
Ssl it-slideshares.blogspot.comSsl it-slideshares.blogspot.com
Ssl it-slideshares.blogspot.com
 
Bảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NETBảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NET
 
Run Openstack with SSL
Run Openstack with SSLRun Openstack with SSL
Run Openstack with SSL
 
PHP.pdf
PHP.pdfPHP.pdf
PHP.pdf
 
Bai18 web app_security_scheme
Bai18 web app_security_schemeBai18 web app_security_scheme
Bai18 web app_security_scheme
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Ch06
Ch06Ch06
Ch06
 
chuong_02.ppt
chuong_02.pptchuong_02.ppt
chuong_02.ppt
 
Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
 
Apache http server
Apache http serverApache http server
Apache http server
 
Ccssl3
Ccssl3Ccssl3
Ccssl3
 
Chương 5: PHP&MYSQL
Chương 5: PHP&MYSQLChương 5: PHP&MYSQL
Chương 5: PHP&MYSQL
 
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTBài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
 
Reveal the Power of Php
Reveal the Power of PhpReveal the Power of Php
Reveal the Power of Php
 
Đề tài: Giao thức http và https trong bảo mật website, HAY - Gửi miễn phí...
Đề tài: Giao thức http và https trong bảo mật website, HAY - Gửi miễn phí...Đề tài: Giao thức http và https trong bảo mật website, HAY - Gửi miễn phí...
Đề tài: Giao thức http và https trong bảo mật website, HAY - Gửi miễn phí...
 
php_nangcao [compatibility mode]
php_nangcao [compatibility mode]php_nangcao [compatibility mode]
php_nangcao [compatibility mode]
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Slide 04
Slide 04Slide 04
Slide 04
 
Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 

Mehr von MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 

Mehr von MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 

Bài 4 Bảo mật cho website - Xây dựng ứng dụng web

  • 1. Bài 4 Bảo mật cho website
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Để 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
  • 12. 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
  • 13. Đị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/
  • 14. Đị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 https://www.murach.com/ //Trả về một kết nối thông thường http://www.murach.com/
  • 16. 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(); } ?>
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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(); }
  • 21. 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; } ?>
  • 22. Form đăng nhập cho xác thực dạng form Bài 4 - Bảo mật cho website 22
  • 23. Trang web được bảo vệ (protected page) Bài 4 - Bảo mật cho website 23
  • 24. 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'; }
  • 25. 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;
  • 26. Mã điều khiển cho trang web được bảo vệ Bài 4 - Bảo mật cho website 26 case 'show_admin_menu': include('view/admin_menu.php'); break; case 'show_product_manager': include('view/product_manager.php'); break; case 'show_order_manager': include('view/order_manager.php'); break; case 'logout': $_SESSION = array(); session_destroy(); $login_message = 'You have been logged out'; include('view/login.php'); break; }
  • 27. File xác nhận tài khoản admin: Đoạn mã ở đầu trang đăng nhập: Áp dụng Bài 4 - Bảo mật cho website 27 <?php //Đảm bảo người dùng tài khoản admin đúng if (!isset($_SESSION['is_valid_admin'])) { header("Location: ."); } ?> <?php //Đòi hỏi kết nối bảo mật require_once('util/secure_conn.php'); ?>
  • 28. Đoạn mã ở đầu các trang được bảo vệ: Áp dụng Bài 4 - Bảo mật cho website 28 <?php //Đòi hỏi kết nối bảo mật require_once('util/secure_conn.php'); //Đòi hỏi tài khoản người dùng đúng require_once('util/valid_admin.php'); ?>
  • 29. Hình ảnh minh họa cho xác thực cơ bản Bài 4 - Bảo mật cho website 29
  • 30. Trang web được bảo vệ Bài 4 - Bảo mật cho website 30
  • 31. Trang web không được xác thực Bài 4 - Bảo mật cho website 31
  • 32. Thành phần: PHP_AUTH_USER PHP_AUTH_PW Mảng $_SERVER cho xác thực cơ bản Bài 4 - Bảo mật cho website 32
  • 33. Mã PHP đảm bảo tài khoản người dùng là đúng: Ví dụ Bài 4 - Bảo mật cho website 33 <?php require_once('model/database.php'); require_once('model/admin_db.php'); $email = $_SERVER['PHP_AUTH_USER']; $password = $_SERVER['PHP_AUTH_PW']; if (!is_valid_admin_login($email, $password)) { header('WWW-Authenticate: Basic realm="Admin"'); header('HTTP/1.0 401 unauthorized'); include('unauthorized.php'); exit(); } ?>
  • 34. Mã PHP ở đầu mỗi trang web được bảo vệ: Ví dụ Bài 4 - Bảo mật cho website 34 <?php //Đòi hỏi kết nối bảo mật require_once('util/secure_conn.php'); //Đòi hỏi tài khoản admin đúng require_once('util/valid_admin.php'); ?>
  • 35. Giới thiệu thư viện mcrypt Cách mã hóa và giải mã dữ liệu Lớp chứa dữ liệu được mã hóa Mã hóa và giải mã dữ liệu Bài 4 - Bảo mật cho website 35
  • 36. PHP cung cấp sẵn thư viện mcrypt để hỗ trợ mã hóa và giải mã dữ liệu Một số khái niệm: Cipher Chế độ hoạt động (mode of operation) CBC (cipher-block chaining) Vector khởi tạo (Initialization Vector - IV) Thư viện mcrypt Bài 4 - Bảo mật cho website 36
  • 37. Một số hàm trong thư viện mcrypt: Mcrypt_get_iv_size($cipher, $mode) Mcrypt_create_iv($ivs) Mcrypt_encrypt($cipher, $key, $data, $move, $iv) Mcrypt_decrypt(($cipher, $key, $data, $move, $iv) Thư viện mcrypt Bài 4 - Bảo mật cho website 37
  • 38. Một số hằng trong thư viện mcrypt: MCRYPT_RIJNDAEL_128 MCRYPT_RIJNDAEL_192 MCRYPT_RIJNDAEL_256 MCRYPT_MODE_CBC Hai hàm chuyển đổi giữa dữ liệu nhị phân và base64: Base64_encode($data) Base64_decode($data) Thư viện mcrypt Bài 4 - Bảo mật cho website 38
  • 39. Ví dụ Bài 4 - Bảo mật cho website 39 <?php $credit_card_no = '41111111111'; //Khai báo các biến $cipher = MCRYPT_RIJDAEL_128; $mode = MCRYPT_MODE_CBC; $key = sha1('secretKey', true); $ivs = mcrypt_get_iv_size($cipher, $mode); $iv = mcrypt_create_iv($ivs); //Mã hóa dữ liệu $data = mcrypt_encrypt($cipher, $key, $credit_card_no, $mode, $iv); $data = base64_encode($data); echo 'Encrypted data: '.$data.'<br/>'; //Giải mã dữ liệu $data = base64_decode($data); $credit_card_no = mcrypt_decrypt($cipher, $key, $credit_card_no, $mode, $iv); echo 'Decrypted data: '.$credit_card_no.'<br/>'; ?>
  • 40. Lớp Crypt Bài 4 - Bảo mật cho website 40 class Crypt { private $key; private $ivs; private $iv; private $cipher; private $mode; public function __construct() { $this->cipher = MCRYPT_RIJDAEL_128; $this->mode = MCRYPT_MODE_CBC; $this->key = sha1('secretKey', true); $this->ivs = mcrypt_get_iv_size($this- >cipher, $this->mode); $this->iv = mcrypt_create_iv($this->ivs); }
  • 41. Lớp Crypt Bài 4 - Bảo mật cho website 41 public function encrypt($data) { $data = mcrypt_encrypt($this->cipher, $this- >key, $data, $this->mode, $this->iv); $data = base64_encode($data); return $data; } public function decrypt($data) { $data = base64_decode($data); $data = mcrypt_decrypt($this->cipher, $this- >key, $data, $this->mode, $this->iv); return $data; } } ?>
  • 42. Sử dụng lớp Crypt Bài 4 - Bảo mật cho website 42 require 'crypt.php'; $credit_card_no = '4111111111111111111'; //Tạo đối tượng Crypt $crypt = new Crypt(); //Sử dụng đối tượng Crypt để mã hóa dữ liệu $data = $crypt->encrypt($credit_card_no); echo 'Encrypted data: ' . $data . '<br />'; //Sử dụng đối tượng Crypt để giải mã dữ liệu $credit_card_no = $crypt->decrypt($data); echo 'Decrypted data: ' . $credit_card_no . '<br />';
  • 43. Kết nối bảo mật sử dụng giao thức TLS và SSL Khi trình duyệt gửi yêu cầu tới máy chủ qua kết nối bảo mật thì máy chủ tự xác thực bằng chứng nhận bảo mật điện tử (digital secure certificate) Bài 4 - Bảo mật cho website 43 Tổng kết bài học
  • 44. Quy trình sử dụng SSL trong ứng dụng web: Người dùng gửi yêu cầu mua chứng nhận bảo mật điện tử tới CA CA xác thực thông tin yêu cầu quá RA CA gửi cho người dùng chứng nhận bảo mật điện tử Người dùng gửi cho người quản trị hosting để cài lên máy chủ Mã hóa dữ liệu bằng hàm sha1 PHP cung cấp thư viện mcrypt hỗ trợ mã hóa và giải mã dữ liệu Tổng kết bài học Bài 4 - Bảo mật cho website 44