Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Lindungi antara muka web daripada serangan suntikan SQL dengan pelayan Linux.

Lindungi antara muka web daripada serangan suntikan SQL dengan pelayan Linux.

WBOY
WBOYasal
2023-09-09 13:21:171151semak imbas

Lindungi antara muka web daripada serangan suntikan SQL dengan pelayan Linux.

Gunakan pelayan Linux untuk melindungi antara muka web daripada serangan suntikan SQL

Dengan perkembangan Internet, penggunaan antara muka web menjadi semakin biasa, yang juga meningkatkan risiko aplikasi web diserang oleh serangan suntikan SQL . Serangan suntikan SQL ialah cara mengeksploitasi input pengguna yang tidak bersih dalam aplikasi web untuk melaksanakan pernyataan SQL yang berniat jahat dalam pangkalan data. Dengan cara ini, penyerang boleh mendapatkan data sensitif, mengubah suai kandungan pangkalan data, atau mengawal sepenuhnya pelayan.

Untuk melindungi antara muka web daripada serangan suntikan SQL, kami boleh menggunakan pelayan Linux untuk melaksanakan satu siri langkah pertahanan. Artikel ini akan memperkenalkan beberapa kaedah pertahanan biasa dan memberikan contoh kod yang sepadan.

  1. Gunakan pertanyaan berparameter
    Pertanyaan berparameter ialah salah satu kaedah yang paling biasa digunakan dan berkesan untuk mempertahankan diri daripada serangan suntikan SQL. Pertanyaan berparameter dilaksanakan dengan tidak mengambil input pengguna sebagai sebahagian daripada pernyataan SQL, tetapi menghantarnya ke pangkalan data sebagai parameter pertanyaan. Ini menghalang pernyataan SQL yang dimasukkan oleh pengguna berniat jahat daripada dilaksanakan.

Berikut ialah kod sampel yang dilaksanakan menggunakan rangka kerja Flask Python:

from flask import request, Flask
import sqlite3

app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']

    conn = sqlite3.connect('database.db')
    cursor = conn.cursor()

    # 使用参数化查询
    cursor.execute('SELECT * FROM users WHERE username=? AND password=?', (username, password))

    user = cursor.fetchone()
    
    if user:
        return '登录成功'
    else:
        return '用户名或密码错误'

if __name__ == '__main__':
    app.run()
  1. Pengesahan dan penapisan input
    Selain pertanyaan berparameter, kami juga perlu mengesahkan dan menapis input pengguna untuk memastikan kandungan yang dimasukkan oleh pengguna mematuhi format dan spesifikasi yang diharapkan. Sebagai contoh, apabila pengguna memasukkan nombor, kami boleh menggunakan ungkapan biasa untuk mengesahkan bahawa input ialah nombor yang sah.

Berikut ialah contoh kod yang dilaksanakan menggunakan rangka kerja Flask Python:

import re
from flask import request, Flask

app = Flask(__name__)

@app.route('/search', methods=['GET'])
def search():
    keyword = request.args.get('keyword')

    if not re.match(r'^[a-zA-Z0-9]+$', keyword):
        return '关键字包含非法字符'

    # 执行查询操作

    return '查询成功'

if __name__ == '__main__':
    app.run()
  1. Sekat kebenaran dan gunakan akaun selamat
    Di peringkat pangkalan data, kami boleh menggunakan akaun pangkalan data selamat untuk aplikasi web dan mengehadkannya kepada hanya Melakukan tindakan yang diperlukan. Ini mengurangkan kemungkinan risiko dieksploitasi oleh penyerang.

Sebagai contoh, dalam pangkalan data MySQL, kami boleh membuat akaun dengan hanya pertanyaan dan memasukkan kebenaran, dan mengkonfigurasi aplikasi web untuk beroperasi menggunakan akaun ini.

  1. Tetapan Keselamatan Rangkaian
    Selain pertahanan di peringkat aplikasi web, kami juga perlu membuat tetapan keselamatan rangkaian yang sepadan pada pelayan Linux.

Pertama, kami boleh menggunakan konfigurasi tembok api untuk hanya membenarkan permintaan daripada alamat IP yang dipercayai untuk mengakses antara muka web.

Kedua, kami boleh menggunakan protokol HTTPS untuk menyulitkan penghantaran data bagi mengelakkan risiko kebocoran data sensitif akibat penyadapan data.

Akhir sekali, kami mengesyorkan agar sentiasa mengemas kini sistem pengendalian pelayan anda dan perisian berkaitan dengan tampung untuk membetulkan kelemahan keselamatan yang diketahui.

Ringkasnya, kami boleh menggunakan pelbagai ciri pelayan Linux untuk melindungi antara muka web daripada serangan suntikan SQL. Dengan menggunakan pertanyaan berparameter, pengesahan dan penapisan input, mengehadkan kebenaran dan menggunakan akaun selamat, dan melaksanakan tetapan keselamatan rangkaian, kami boleh mengurangkan risiko serangan suntikan SQL dalam aplikasi web kami dengan banyak. Walau bagaimanapun, keselamatan adalah proses yang berterusan dan kami perlu terus berwaspada dan sentiasa mengemas kini serta meningkatkan pertahanan kami.

Atas ialah kandungan terperinci Lindungi antara muka web daripada serangan suntikan SQL dengan pelayan Linux.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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