Wie erstellt man sicher Text-SQL-Abfragen in Go?

Susan Sarandon
Freigeben: 2024-10-31 21:26:29
Original
253 Leute haben es durchsucht

 How to Safely Construct Text SQL Queries in Go?

Korrekte Methode zum Erstellen von Text-SQL-Abfragen in Go

Beim Schreiben von Text-SQL-Abfragen in Go können beim Verketten von Zeichenfolgenteilen mit Werten Probleme auftreten. Herkömmliche Methoden, wie die Verwendung der Platzhalter %d und %s innerhalb einer Zeichenfolge, können zu Syntaxfehlern oder Typkonflikten führen.

Verkettung im Python-Stil

In Python Sie können Zeichenfolgen und Werte mit %-Operatoren innerhalb von Zeichenfolgen in drei Anführungszeichen verketten. Dieser Ansatz wird jedoch in Go nicht unterstützt.

Go-Äquivalent

Um eine ähnliche Verkettung in Go zu erreichen, können Sie die Funktion fmt.Sprintf verwenden. Es benötigt ein Zeichenfolgenformat als erstes Argument und zusätzliche Argumente für die Platzhalter:

<code class="go">query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnC = %s`,
                     someNumber, someString)</code>
Nach dem Login kopieren

Verhindern von Injektionsschwachstellen

Beim Verketten von Werten in Abfragen ist es wichtig, dies zu vermeiden Sicherheitslücken bei der Injektion. Anstatt Platzhalter in Zeichenfolgen zu verwenden, sollten Sie vorbereitete Anweisungen verwenden:

<code class="go">query := `SELECT columnA FROM tableA WHERE columnB = ? AND columnC = ?`

rows, err := db.Query(query, val1, val2)</code>
Nach dem Login kopieren

Hier ? Platzhalter stellen die Werte dar und val1 und val2 werden als Argumente an db.Query übergeben. Diese Methode gewährleistet die Abfragesicherheit und verhindert, dass böswillige Eingaben die Datenbank beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWie erstellt man sicher Text-SQL-Abfragen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!