Bagaimana untuk mengkonfigurasi sistem CentOS untuk melindungi aplikasi web daripada serangan suntikan SQL

WBOY
Lepaskan: 2023-07-05 12:58:37
asal
1748 orang telah melayarinya

Cara mengkonfigurasi sistem CentOS untuk melindungi aplikasi web daripada serangan suntikan SQL

Pengenalan:
Dengan perkembangan Internet, penggunaan aplikasi web menjadi semakin meluas, tetapi ia juga membawa isu keselamatan aplikasi web. Antaranya, serangan suntikan SQL adalah kaedah serangan yang paling biasa. Untuk melindungi aplikasi web kami, kami perlu melakukan satu siri konfigurasi dan pengoptimuman pada sistem CentOS. Artikel ini akan menerangkan cara mengkonfigurasi sistem CentOS untuk melindungi aplikasi web daripada serangan suntikan SQL.

  1. Pasang dan Konfigurasi Pelayan Web
    Mula-mula, kami perlu memasang dan mengkonfigurasi pelayan web yang boleh dipercayai untuk mengehoskan aplikasi web kami. Di sini, kami memilih pelayan Apache yang biasa digunakan sebagai contoh. Berikut ialah contoh arahan untuk memasang pelayan Apache pada CentOS:

    sudo yum install httpd
    Salin selepas log masuk

    Selepas melengkapkan pemasangan, kami perlu melakukan beberapa konfigurasi keselamatan pada Apache. Pertama, kami akan melumpuhkan penyemakan imbas direktori pada pelayan untuk menghalang penyerang daripada mendapatkan maklumat sensitif pada pelayan. Berikut ialah contoh melumpuhkan penyemakan imbas direktori dengan mengubah suai fail httpd.conf:

    sudo vi /etc/httpd/conf/httpd.conf
    Salin selepas log masuk

    Cari baris ini dalam fail:

    Options Indexes FollowSymLinks
    Salin selepas log masuk

    Tukar kepada:

    Options -Indexes FollowSymLinks
    Salin selepas log masuk

    Simpan dan keluar dari fail. Kemudian, kami akan memulakan semula pelayan Apache untuk menjadikannya berkesan:

    sudo systemctl restart httpd
    Salin selepas log masuk
  2. Mengkonfigurasi Pelayan Pangkalan Data
    Aplikasi web selalunya perlu menggunakan pangkalan data untuk menyimpan dan mengurus data. Di sini, kami memilih MySQL sebagai pelayan pangkalan data untuk menyimpan data kami. Berikut ialah contoh arahan untuk memasang pelayan MySQL pada CentOS:

    sudo yum install mysql-server
    Salin selepas log masuk

    Selepas melengkapkan pemasangan, kami perlu membuat beberapa konfigurasi keselamatan untuk MySQL. Mula-mula, kami akan melumpuhkan akses jauh dan hanya membenarkan akses tempatan kepada pangkalan data. Berikut ialah contoh melumpuhkan capaian jauh dengan mengubah suai fail my.cnf:

    sudo vi /etc/my.cnf
    Salin selepas log masuk

    Cari baris berikut:

    bind-address = 127.0.0.1
    Salin selepas log masuk

    Tambah simbol ulasan "#" sebelum baris untuk menjadikannya baris ulasan:

    #bind-address = 127.0.0.1
    Salin selepas log masuk

    Simpan dan keluar fail tersebut. Kami kemudiannya akan memulakan semula pelayan MySQL untuk konfigurasi berkuat kuasa:

    sudo systemctl restart mysqld
    Salin selepas log masuk
  3. Menulis Kod Aplikasi Web Selamat
    Apabila menulis kod aplikasi web, kami perlu mengambil beberapa langkah keselamatan untuk mengelakkan serangan suntikan SQL. Berikut ialah beberapa contoh kod untuk langkah pertahanan:
  4. Gunakan pernyataan pertanyaan berparameter: Apabila melaksanakan pertanyaan SQL, kita harus menggunakan pernyataan pertanyaan berparameter dan bukannya rentetan gabungan. Ini menghalang penyerang daripada menyuntik kod SQL tambahan menggunakan input berniat jahat. Berikut ialah contoh menggunakan pertanyaan berparameter:

    import pymysql
    
    conn = pymysql.connect(host='localhost', user='username', password='password', database='dbname')
    cursor = conn.cursor()
    
    sql = "SELECT * FROM users WHERE username = %s"
    username = 'admin'
    cursor.execute(sql, (username,))
    
    result = cursor.fetchall()
    
    for row in result:
     print(row)
    
    conn.close()
    Salin selepas log masuk
  • Tapis dan sahkan input: Apabila menerima input pengguna, kami harus menapis dan mengesahkan input untuk memastikan bahawa input mematuhi format dan jenis yang diharapkan. Berikut ialah contoh penapisan dan pengesahan input:

    username = input("请输入用户名:")
    
    # 过滤非法字符
    for char in username:
      if char not in ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_'):
          username = username.replace(char, '')
    
    # 验证用户名长度
    if len(username) > 20:
      username = username[:20]
    
    print("处理后的用户名为:", username)
    Salin selepas log masuk
  • Gunakan perpustakaan pangkalan data selamat: Apabila menggunakan perpustakaan pangkalan data, kita harus memilih perpustakaan yang boleh dipercayai seperti pymysql atau psycopg2 dan elakkan menggunakan perpustakaan yang diketahui mempunyai kelemahan keselamatan. Perpustakaan ini biasanya menyediakan beberapa langkah pertahanan terbina dalam, seperti melarikan diri secara automatik aksara khas, dsb.
  • Kesimpulan:
    Dengan konfigurasi dan pengoptimuman kod di atas, kami boleh melindungi aplikasi web kami dengan berkesan daripada serangan suntikan SQL. Sudah tentu, ini hanya sebahagian daripada langkah perlindungan Kami juga perlu memberi perhatian kepada isu keselamatan lain dan mengemas kini serta menyelenggara sistem tepat pada masanya. Dengan menggabungkan pelbagai langkah keselamatan, kami boleh melindungi keselamatan aplikasi web dan data kami dengan lebih berkesan.

    Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi sistem CentOS untuk melindungi aplikasi web daripada serangan suntikan SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan