Hướng dẫn tự sao lưu dữ liệu bảo mật website bằng PHP

Bảo mật website là vấn đề quan trọng đối với bất cứ một website nào sau khi thiết kế và chạy trên server. Để đề phòng và tránh khỏi những cuộc tấn công bất ngờ của các hacker thì việc sao lưu dữ liệu thường xuyên là vấn đề quan trọng mà người quản trị phải thực hiện công việc đó thường xuyên để bảo vệ website. Sau đây, công ty thiết kế website OSVN sẽ hướng dẫn các bạn- những người quản trị sử dụng PHP sao lưu dữ liệu website một cách dễ dàng.

Sao lưu dữ liệu bằng PHP

Đối với website được thiết kế với nhiều bảng cơ sở dữ liệu như website thương mại điện tử website bán hàng thì việc sao lưu dữ liệu hàng ngày là không thể thiếu. Bạn, người quản trị website sẽ khổng thể biết được khi nào những dữ liệu quý báu thường ngày mình up lên sẽ bị tấn công bởi tên tội phạm công nghệ, hoặc đối thủ bạn có hacker. Mỗi khi một server bị tấn công thì không biết hacker đó sẽ nhòm ngó tới website trên hosting nào vì vậy hãy chuẩn bị tinh thần trước khi quá muộn.
Xem thêm: Vấn đề bảo mật trong thiết kế web
Tuy nhiên, bạn không thể lúc nào ngày nào cũng phải bỏ khoảng thời gian để sao lưu dữ liệu website, có thể có những khi bạn quên làm việc đó. Vậy tại sao không nghĩ tới việc làm thế nào để không cần làm gì mà dữ liệu vẫn được sao lưu an toàn. Hãy sử dụng những dòng code đơn giản bằng PHP nó sẽ giúp bạn tự động hóa sao lưu database một cách nhanh nhất. Các bước làm như dưới đây:
Bước 1:

Đầu tiên bạn mở trình soạn thảo NotePad nên và tạo một file mới copy nội dung sau vào và lưu file với tên connect_db.php thành phần mở rộng chính là .php. Nhiệm vụ của file này sẽ kết nối với CSDL.

$host=”localhost”;
$uname=”YourUserName”;
$pass=”YourPassword”;
$database = “YourDatabaseName”;
$connection=mysql_connect($host,$uname,$pass);
or die(“Database Connection Failed”);
$selectdb=mysql_select_db($database) or die(“Database could not be selected”);
$result=mysql_select_db($database)
or die(“database cannot be selected
“);

Lưu ý:  các bạn nhớ đổi tên $host,$uname,$pass,$database sao cho phù hợp với các giá trị trên server của bạn nhé.

Bước 2:

Tiếp theo các bạn tạo một file php với tên là backup_db sau đó copy toàn bộ code dưới đây vào file đó lưu lại.

include(“connect_db.php”);
function backup_db(){
/* Luu tru tat ca ten Table vao mot mang */
$allTables = array();
$result = mysql_query(‘SHOW TABLES’);
while($row = mysql_fetch_row($result)){
$allTables[] = $row[0];
}
foreach($allTables as $table){
$result = mysql_query(‘SELECT * FROM ‘.$table);
$num_fields = mysql_num_fields($result);

$return.= ‘DROP TABLE IF EXISTS ‘.$table.’;’;
$row2 = mysql_fetch_row(mysql_query(‘SHOW CREATE TABLE ‘.$table));
$return.= “\n\n”.$row2[1].”;\n\n”;

for ($i = 0; $i < $num_fields; $i++) {
while($row = mysql_fetch_row($result)){
$return.= ‘INSERT INTO ‘.$table.’ VALUES(‘;
for($j=0; $j<$num_fields; $j++){
$row[$j] = addslashes($row[$j]);
$row[$j] = str_replace(“\n”,”\\n”,$row[$j]);
if (isset($row[$j])) { $return.= ‘”‘.$row[$j].'”‘ ; }
else { $return.= ‘””‘; }
if ($j<($num_fields-1)) { $return.= ‘,’; }
}
$return.= “);\n”;
}
}
$return.=”\n\n”;
}
// Tao Backup Folder
$folder = ‘DB_Backup/’;
if (!is_dir($folder))
mkdir($folder, 0777, true);
chmod($folder, 0777);

$date = date(‘m-d-Y-H-i-s’, time());
$filename = $folder.”db-backup-“.$date;

$handle = fopen($filename.’.sql’,’w+’);
fwrite($handle,$return);
fclose($handle);
}
// Goi ham thuc thi
backup_db();

Như vậy là xong. Sau này mỗi khi bạn cần backup CSDL chỉ việc mở trình duyệt và chạy file backup_db.php là tất cả các dữ liệu website bạn đã được sao lưu một cách nhanh chóng. Hy vọng chút kiến thức này có thể giúp các bạn websmater sao lưu dữ liệu nhanh chóng trong khi thiết kế web cũng như các nhà quản trị bảo vệ sự tấn công dữ liệu website một cách tốt nhất.

Comments

Bình luận