Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie ein CentOS-System zum Schutz von Webanwendungen vor SQL-Injection-Angriffen

So konfigurieren Sie ein CentOS-System zum Schutz von Webanwendungen vor SQL-Injection-Angriffen

WBOY
WBOYOriginal
2023-07-05 12:58:371516Durchsuche

So konfigurieren Sie das CentOS-System zum Schutz von Webanwendungen vor SQL-Injection-Angriffen

Einführung:
Mit der Entwicklung des Internets wird die Verwendung von Webanwendungen immer weiter verbreitet, bringt jedoch auch Sicherheitsprobleme von Webanwendungen mit sich. Unter diesen ist der SQL-Injection-Angriff die häufigste Angriffsmethode. Um unsere Webanwendungen zu schützen, müssen wir eine Reihe von Konfigurationen und Optimierungen am CentOS-System durchführen. In diesem Artikel wird beschrieben, wie Sie ein CentOS-System konfigurieren, um Webanwendungen vor SQL-Injection-Angriffen zu schützen.

  1. Webserver installieren und konfigurieren
    Zuerst müssen wir einen zuverlässigen Webserver installieren und konfigurieren, um unsere Webanwendung zu hosten. Hier wählen wir als Beispiel den häufig verwendeten Apache-Server. Das Folgende ist ein Beispiel für den Befehl zum Installieren des Apache-Servers unter CentOS:

    sudo yum install httpd

    Nach Abschluss der Installation müssen wir einige Sicherheitskonfigurationen auf Apache durchführen. Zunächst deaktivieren wir das Durchsuchen von Verzeichnissen auf dem Server, um zu verhindern, dass Angreifer vertrauliche Informationen auf dem Server erhalten. Hier ist ein Beispiel für das Deaktivieren des Durchsuchens von Verzeichnissen durch Ändern der Datei httpd.conf:

    sudo vi /etc/httpd/conf/httpd.conf

    Finden Sie diese Zeile in der Datei:

    Options Indexes FollowSymLinks

    Ändern Sie sie in:

    Options -Indexes FollowSymLinks

    Speichern und beenden Sie die Datei. Anschließend starten wir den Apache-Server neu, damit er wirksam wird:

    sudo systemctl restart httpd
  2. Konfigurieren des Datenbankservers
    Webanwendungen müssen häufig eine Datenbank zum Speichern und Verwalten von Daten verwenden. Hier wählen wir MySQL als Datenbankserver zum Speichern unserer Daten. Das Folgende ist ein Beispielbefehl zum Installieren des MySQL-Servers unter CentOS:

    sudo yum install mysql-server

    Nach Abschluss der Installation müssen wir einige Sicherheitskonfigurationen für MySQL vornehmen. Zunächst deaktivieren wir den Fernzugriff und erlauben nur den lokalen Zugriff auf die Datenbank. Hier ist ein Beispiel für die Deaktivierung des Fernzugriffs durch Ändern der Datei my.cnf:

    sudo vi /etc/my.cnf

    Suchen Sie die folgende Zeile:

    bind-address = 127.0.0.1

    Fügen Sie das Kommentarsymbol „#“ vor der Zeile hinzu, um daraus eine Kommentarzeile zu machen:

    #bind-address = 127.0.0.1

    Speichern und beenden die Datei. Anschließend starten wir den MySQL-Server neu, damit die Konfiguration wirksam wird:

    sudo systemctl restart mysqld
  3. Sicheren Webanwendungscode schreiben
    Beim Schreiben von Webanwendungscode müssen wir einige Sicherheitsmaßnahmen ergreifen, um SQL-Injection-Angriffe zu verhindern. Hier sind einige Beispielcodes für Abwehrmaßnahmen:
  4. Verwenden Sie parametrisierte Abfrageanweisungen: Bei der Ausführung von SQL-Abfragen sollten wir parametrisierte Abfrageanweisungen anstelle verketteter Zeichenfolgen verwenden. Dadurch wird verhindert, dass Angreifer durch böswillige Eingaben zusätzlichen SQL-Code einschleusen. Hier ist ein Beispiel für die Verwendung einer parametrisierten Abfrage:

    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()
  • Eingabe filtern und validieren: Beim Empfang von Benutzereingaben sollten wir die Eingabe filtern und validieren, um sicherzustellen, dass die Eingabe dem erwarteten Format und Typ entspricht. Hier ist ein Beispiel für Eingabefilterung und -validierung:

    username = input("请输入用户名:")
    
    # 过滤非法字符
    for char in username:
      if char not in ('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_'):
          username = username.replace(char, '')
    
    # 验证用户名长度
    if len(username) > 20:
      username = username[:20]
    
    print("处理后的用户名为:", username)
  • Verwenden Sie sichere Datenbankbibliotheken: Bei der Verwendung von Datenbankbibliotheken sollten wir zuverlässige Bibliotheken wie pymysql oder psycopg2 wählen und die Verwendung von Bibliotheken vermeiden, die bekanntermaßen Sicherheitslücken aufweisen. Diese Bibliotheken bieten normalerweise einige integrierte Schutzmaßnahmen, wie z. B. das automatische Escapen von Sonderzeichen usw.

Fazit:
Mit der oben genannten Konfiguration und Codeoptimierung können wir unsere Webanwendung effektiv vor SQL-Injection-Angriffen schützen. Dies ist natürlich nur ein Teil der Schutzmaßnahmen. Wir müssen auch auf andere Sicherheitsaspekte achten und das System rechtzeitig aktualisieren und warten. Durch die Kombination verschiedener Sicherheitsmaßnahmen können wir die Sicherheit unserer Webanwendungen und Daten wirksamer schützen.

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie ein CentOS-System zum Schutz von Webanwendungen vor SQL-Injection-Angriffen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn