[ PHP ] Module chống SQL Injection và cách thức

Xin chào mọi người,
Hôm nay mình sẽ bắt đầu chuỗi bài viết nói về việc bảo mật cho website chạy dưới nền tảng PHP và Mysql.
Đây là những kinh nghiệm mình đúc kết được từ sau nhiều lần bị hack và nhiều lần hack được người ta ))
------------------------------------------

Module Chống SQL Injection


SQL Injection được xem là một trong những lỗi cơ bản nhất khi lập trình mà rất nhiều website hiện nay đang bị.

I. Giới thiệu code

Mã nguồn PHP:
Mã:
<?php
// Anti SQL Injection
// Code by Lương Tấn Khang
// From Whitehat.vn
///////////////////////
foreach($_GET as $var => $value) {
$_GET["$var"]=addslashes(mysql_real_escape_string($value));
}
foreach($_POST as $variable => $value) {
$_POST["$var"]=addslashes(mysql_real_escape_string($value));
}
?>
Giải thích:
Ở đây đơn giản mình sẽ lấy tất cả các giá trị GET, POST được client gửi lên, sau đó sẽ dùng 2 hàm
mysql_real_escape_string: hàm này dùng để kiểm tra dữ liệu của người dùng đưa vào có thật sự "bình thường" không
addslashes: hàm này dùng để thêm dấu \ trước các kí tự như ', " . Khi client nhập vào 'dayladulieu thì nó sẽ tự động chuyển sang \'dayladulieu. Lúc đó kí tự ' sẽ bị bất hoạt
Các bạn có thể áp dụng code này để chống bypass đăng nhập admin


II. Cài đặt module

Đầu tiên chúng ta tạo 1 file AntiSQLi.php ở thư mục root của trang web


Sau đó chúng ta sẽ chèn đoạn code này vào file kết nối đến CSDL
Mã nguồn PHP:

PHP Code:
require_once("AntiSQLi.php"); 



Vậy là đã hoàn thành!

III. Đối với các website phát triển trên nền tảng mã nguồn mở Joomla, Wordpress,...

Đối với loại này các bạn cũng làm tương tự, đây là danh sách path cho các bạn chưa biết- Vbulletin:


Mã:
path/includes/config.php
- Mybb:
path/inc/config.php
- Joomla:
path/configuration.php
- Word-Press:
path/wp-config.php
- Ibp:
path/conf_global.php
- Php-fusion:
path/config.php
- Smf:
Path/Settings.php
- Nuke:
path/config.php
- Xoops:
path/mainfile.php
- Zen Cart
Path/includes/configure.php
- path/setidio:
path/datas/config.php
- Datalife Engine:
path/engine/data/config.php 
- Phpbb:
Path/config.php
- Wordpress: 
path/wp-config.php
- Seditio:
path/datas/config.php
- Drupal:
path/sites/default/settings.php​
- Discuz
path/config/config_ucenter.php
- Bo-Blog
path/data/config.php
Mong mọi người góp ý phát triển! chúc một ngày mới tốt lành
[ PHP ] Module chống SQL Injection và cách thức Reviewed by Nguyen Nam Hong on 6:59 AM Rating: 5
Copyright © Kid1412 Blog's 💖 2016
Development by Hong Nguyen Nam
Powered by Blogger.