Bảo mật web

Tự động hóa sao lưu dữ liệu bằng PHP để bảo mật web

18/07/2014  | 
Sao lưu dữ liệu thường xuyên là một vấn đề quan trọng mà mỗi quản trị website đều phải thực hiện để bảo mật website khỏi những cuộc tấn công bất ngờ của hacker. Vậy tại sao chúng ta không sử dụng PHP để tự động hóa quá trình sao lưu database dễ dàng hơn?

sao luu php
Tự động hóa sao lưu dữ liệu bằng PHP 

Đối với các thiết kế web có chứa nhiều dữ liệu, chẳng hạn như thiết kế web bán hàng thương mại điện tử, thì sao lưu database là việc làm thường xuyên và không thể thiếu. Nhà quản trị [website] không thể biết khi nào thì dữ liệu quý báu sẽ gặp sự cố khi bị hacker thăm nom hay hosting bị lỗi. Nếu các bạn không có nhiều thời gian dành cho việc này thì sao không thực hiện tự động hóa nó ngay bây giờ bằng vài dòng code [PHP] đơn giản. Làm xong việc này, bạn có thể ngồi ung dung mà nghe nhạc xem phim mà không lo lắng đến việc bảo mật [database] nữa, vì chúng sẽ được tự động hóa thực hiện theo ngày giờ ấn định. 


Đầu tiên, bạn cần tạo một file php và đặt tên là connection.php. File này sẽ đảm nhiệm việc kết nối tới database mà chúng ta cần.

$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
 ");

Các bạn nhớ thay đổi tên $host, $uname, $pass và $database phù hợp với các giá trị trên server của các bạn. Các bạn chỉ cần tạo một file mới, copy toàn bộ code dưới đây và paste vào bên trong file vừa tạo.

include("connection.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();
Từ nay về sau, mỗi khi cần sao lưu database thì bạn chỉ cần chạy file php này là xong. Hy vọng các bạn webmaster có thể tiết kiệm được nhiều thời gian cũng như tăng thêm kiến thức trong việc quản trị website và sử dụng PHP để bảo mật web.


Like Tạp Chí Web
comments powered by Disqus