Diễn đàn Trái Tim Yên Bái 2024

 Quên mật khẩu
 Đăng ký
Xem: 3461|Trả lời: 0
Thu gọn cột thông tin

Phòng chống SQL Injection bằng PHP một cách đơn giản

[Lấy địa chỉ]
  • Tâm trạng hàng ngày
    Hạnh phúc
    2-7-2025 09:43 PM
  • Đã viết: 13 ngày

    [LV.3]Spam 3

    Đăng lúc 22-8-2008 02:52 PM | Xem tất |Chế độ đọc

    Mời bạn đăng ký để giao lưu kết bạn nhé <3

    Bạn phải đăng nhập để xem được nội dung, nếu bạn chưa có tài khoản? hãy Đăng ký

    x
    Mình xin giới thiệu một phương pháp chống SQL Injection đơn giản nhưng cũng khá hiệu quả

    Phương thức hoạt động của nó là kiểm tra các câu truy vấn đầu vào và so sánh với các từ khóa ( là những dạng truy vấn mà Hacker sư dụng để kiểm tra xem website có bị dính SQL Injection hay không ) có trong danh sách, nếu câu truy vấn có nhưng từ trùng với các từ khóa trong danh sách nó sẽ đưa ra cảnh báo và block lại nhưng câu truy vấn đó. Các bạn có thể thêm vào danh sách nhưng từ khóa ( câu truy vấn ) được coi là có hại để tăng cường bảo mật cho website của mình.

    Tạo một file có tên "AntiSQLInjection.php" với nội dung như sau:
    1. <?php
    2.    $cautruyvan = $_SERVER['QUERY_STRING'];
    3.    $tukhoa = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(',
    4.                      'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20',
    5.                     'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20', 'echr=',
    6.                     'esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', '%20mdir', 'mdir(',
    7.                     'mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm',
    8.                     'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(',
    9.                     'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 'chown(', 'chgrp(',
    10.                     'locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20', 'kill%20', 'kill(', 'killall',
    11.                     'passwd%20', '%20passwd', 'passwd(', 'telnet%20', 'vi(', 'vi%20',
    12.                     'insert%20into', 'select%20', 'nigga(', '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20',
    13.                     '$_request', '$_get', '$request', '$get', '.system', 'HTTP_PHP', '&aim', '%20getenv', 'getenv%20',
    14.                     'new_password', '&icq','/etc/password','/etc/shadow', '/etc/groups', '/etc/gshadow',
    15.                     'HTTP_USER_AGENT', 'HTTP_HOST', '/bin/ps', 'wget%20', 'uname\x20-a', '/usr/bin/id',
    16.                     '/bin/echo', '/bin/kill', '/bin/', '/chgrp', '/chown', '/usr/bin', 'g\+\+', 'bin/python',
    17.                     'bin/tclsh', 'bin/nasm', 'perl%20', 'traceroute%20', 'ping%20', '.pl', '/usr/X11R6/bin/xterm', 'lsof%20',
    18.                     '/bin/mail', '.conf', 'motd%20', 'HTTP/1.', '.inc.php', 'config.php', 'cgi-', '.eml',
    19.                     'file\://', 'window.open', '<SCRIPT>', 'javascript\://','img src', 'img%20src','.jsp','ftp.exe',
    20.                     'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe', '.htpasswd',
    21.                     'servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js', '.jsp', 'admin_', '.history',
    22.                     'bash_history', '.bash_history', '~nobody', 'server-info', 'server-status', 'reboot%20', 'halt%20',
    23.                     'powerdown%20', '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache', '/servlet/con',
    24.                     '<script', '/robot.txt' ,'/perl' ,'mod_gzip_status', 'db_mysql.inc', '.inc', 'select%20from',
    25.                     'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', 'php_', 'phpinfo()', '<?php', '?>', 'sql=');

    26.    $kiemtra = str_replace($tukhoa, '*', $cautruyvan);

    27.    if ($cautruyvan != $kiemtra)
    28.      {
    29.        $cremotead = $_SERVER['REMOTE_ADDR'];
    30.        $cuseragent = $_SERVER['HTTP_USER_AGENT'];

    31.        die( "Phat hien co su tan cong! <br /><br /><b>Viec tan cong nay da bi ngan chan va se duoc ghi nhan lai:</b><br />$cremotead - $cuseragent" );
    32.      }

    33. ?>
    Sao chép mã


    Thêm đoạn code sau vào file mà bạn muốn bảo vệ:
    1. <?php

    2. include "AntiSQLInjection.php";

    3. ?>
    Sao chép mã

    Tác giả: hangsachtay.
    Bạn phải đăng nhập mới được đăng bài Đăng nhập | Đăng ký

    Quy tắc điểm

    Đóng

    Thông báoTrước /1 Sau

    Phòng tối|Lưu trữ|Diễn đàn Yên Bái 2024 Community Guidelines |

    GMT+7, 14-10-2026 09:08 PM , Processed in 0.019730 second(s), 18 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    Trả lời nhanh Lên trên Trở lại danh sách