Heim >php教程 >PHP开发 >Eine kurze Diskussion über den Unterschied zwischen # und $ in mybatis

Eine kurze Diskussion über den Unterschied zwischen # und $ in mybatis

高洛峰
高洛峰Original
2017-01-05 17:22:561431Durchsuche

1. #Behandeln Sie die eingehenden Daten als Zeichenfolge und fügen Sie den automatisch eingehenden Daten doppelte Anführungszeichen hinzu. Beispiel: order by #user_id#, wenn der übergebene Wert 111 ist, dann ist der in SQL analysierte Wert order by „111“. 🎜>

2. $ Die eingehenden Daten direkt anzeigen und in SQL generieren. Beispiel: order by $user_id$, wenn der übergebene Wert 111 ist, dann ist der in SQL analysierte Wert order by user_id. Wenn der übergebene Wert id ist, ist der analysierte SQL-Wert order by id >3. #Methode kann SQL-Injection weitgehend verhindern. ​

4. Die $-Methode kann die SQL-Injection nicht verhindern.

5. Die $-Methode wird im Allgemeinen verwendet, um Datenbankobjekte wie Tabellennamen zu übergeben.

6 Im Allgemeinen verwenden Sie nicht $, wenn Sie # verwenden können.

MyBatis-Sortierung Wenn Sie die Reihenfolge nach dynamischen Parametern verwenden, müssen Sie darauf achten, $ anstelle von #

String-Ersetzung

zu verwenden. Standardmäßig führt die Verwendung der #{}-Formatsyntax zu MyBatis um vorbereitete Anweisungsattribute zu erstellen und einen sicheren Wert (z. B. ?) dafür festzulegen. Das ist sicher, schnell und wird bevorzugt, manchmal möchte man einfach eine unveränderte Zeichenfolge direkt in die SQL-Anweisung einfügen. Sie können es beispielsweise wie ORDER BY wie folgt verwenden: ORDER BY ${columnName}

Hier wird MyBatis die Zeichenfolge weder ändern noch maskieren.

Wichtig: Es ist nicht sicher, die Ausgabe des Benutzers zu akzeptieren und sie als unveränderliche Zeichenfolge in der Anweisung bereitzustellen. Dies führt zu potenziellen SQL-Injection-Angriffen. Daher sollten Sie Benutzern die Eingabe dieser Felder nicht gestatten oder sie generell umgehen und selbst überprüfen.

Das Obige ist der gesamte Inhalt der kurzen Diskussion des Herausgebers über den Unterschied zwischen # und $ in mybatis. Ich hoffe, dass jeder die chinesische PHP-Website unterstützt~

Weitere kurze Diskussion über den Unterschied zwischen # und $ in mybatis finden Sie auf der chinesischen PHP-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