The Soda Pop
logo

Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Home · Bang hội ·
* Đăng Nhập hoặc Đăng Kí
để sử dụng hết chức năng của diễn đàn.
Hi, Khách!
HomeBang hội » Wapmaster » Hacking » Share class security, fix lỗi XSS, SQL Injection
Xuống dưới » Share class security, fix lỗi XSS, SQL Injection
avatar by Pham_loi Pham_loi
Chức vụ:
07:18:45, 31-03-2016

Đêm khuya buồn buồn ngồi viết cái class này cho AE nào muốn fix các lỗi căn bản như:
- XSS (Cross-Site Scripting)
- SQLI (Sql injection)


Source Code:

<?php

/**
 * Author: Killer
**/

class K_Security {

    
/**
     * Loại bỏ ký tự đặc biệt của ID
     * Fix bug sql injection
     * @param integer $Numeric
     * @return integer
     */
    
public function removeSQLI($Numeric){
        
$strNumeric preg_replace('/\D/'''$Numeric);
        if(
$strNumeric != 0){
            return 
$strNumeric;
        }else{
            return 
false;
        }
    }
    
    
/**
     * Loại bỏ thẻ html
     * Fix bug XSS
     * @param string $Numeric
     * @return string
     */
    
public function cleanXSS($string){
        if(
get_magic_quotes_gpc()){
            
$string stripslashes($string);
        }
        
$string mysql_real_escape_string($string);
        
$string strip_tags(str_replace(array("alert(\'","\');",), array('',''),$string));
        return 
$string;
    }
}
?>

Copy code

Cách dùng:


1. Bạn có lấy thông tin của bài viết bằng cách áp dụng phương thức GET là truyền id của bài viết đó.

URL: http://domain/post.php?id=123

Vậy lỗi xuất hiện khi nào ?

Lỗi phát sinh khi có một ai đó sử dụng các ký tự đặc biệt như:


Thêm dấu ' vào url chẳng hạn.
Hay một số lệnh trong mysql.
....


Vậy cách khắc phục thế nào?

Bạn chỉ cần làm theo mẫu sau:

Code mẫu:
<?php
$ID 
= (int)$_GET['id';//Bắt tham số truyền vào và gán cho nó một biến

if(isset($ID)){//Xem biến này có tồn tại hay không
    
$security = new K_Security;//Gọi thư viện
    
if($security->removeSQLI($ID) != false){
        echo 
$security->removeSQLI($ID);
    }else{
        echo 
"Khong co gia tri";
    }
}
?>

Copy code

2. Bạn làm một cái khung tìm kiếm các từ khóa có trong bài viết.

Vậy lỗi là khi nào ?

Lỗi phát sinh khi ng dùng cố ý gõ vào đó những đoạn mã của HTML, và vô tinh khi bạn echo đoạn mã đó ra trình duyệt, trình duyệt sẽ nhận biết đó là một mã HTML dẫn đến kết quả là nó sẽ hiện thị như đó là một mã HTML lên trình duyệt.

Vậy cách khắc phục ?

Bạn chỉ cần làm theo mẫu sau:

Code mẫu:
<?php
//Chuỗi có chèn một số mã HTML.
$string "<script type=\"text/javascript\">alert('You must be logged in to report a snippet.');</script><img alt=\"\" src=\"http://1.gravatar.com/avatar/ba23f37e405799b7b6055ef58f1f5721?s=100&amp;d=&amp;r=G\" class=\"avatar avatar-100 photo img-circle img-polaroid\" height=\"100\" width=\"100\"><a href=\"http://en.pdf24.org/fax-online.jsp\" title=\"Fax Online\" onclick=\"var pdf24Win = window.open('about:blank', 'pdf24PopWin', 'resizable=yes,scrollbars=yes,width=500,height=250,top=0,left=0'); pdf24Win.focus(); document.pdf24Form0.submit(); if(typeof pdf24OnCreatePDF === 'function'){void(pdf24OnCreatePDF(this,pdf24Win));} return false;\" class=\"btn btn-large btn-block btn-primary\">Tải bài viết dạng PDF</a>";


$security = new K_Security;//Gọi thư viện
echo $security->cleanXSS($string);// Xử lý
?>

Copy code

Done nhé ^^!


Cảm ơn các bạn đã xem bài viết :D
Nếu các bạn nào có cách khắc phục khác thì hãy public lên rồi chúng ta cùng nhau thảo luận nhé.
Nguồn: sinhvienit


↓ Tập tin đính kèm ↓


Vui lòng Đăng Nhập để có thể tải file
SinhVienIT.Net---ksecurity.php
Thể loại: text/x-php
Dung lượng: 792B


Chỉnh sửa lúc 2016-03-31 07:20 bởi Pham_loi
Like: 0
Lên trên  Tổng số: 1







Trực Tuyến: Khách: 1
Diễn đàn teen Việt Nam
CopyRight 2014