<span style = "Schriftfamilie: Arial, Helvetica, sans-serif; Hintergrundfarbe: RGB (255, 255, 255);"> Gestern meldete die Projektsuche einen Fehler. Der Schmerz stammte aus der Produktionsbibliothek. Ich habe mir das Protokoll angesehen, weil der Benutzer beim Suchen Sonderzeichen eingegeben hat. Es gibt keine Möglichkeit, die vom Benutzer eingegebenen Daten direkt zu filtern und Sonderzeichen </span> direkt zu filtern
Einige Sonderzeichen werden in den Hintergrund übergeben und erzeugen Fehler. Es kann SQL injiziert werden, so dass es grundlegend abgefangen wird.
Lassen Sie uns die Art und Weise diskutieren, wie die Eingabe die Eingabe von Eingabe von Sonderzeichen verbietet:
Methode 1: Nachdem Sie den Wertwert erhalten haben, verarbeiten Sie ihn, bevor Sie ihn bestehen
Funktion Stripcript (Wert) {var muster = new Regexp ("[` ~!@#$^&*() = | {} ':;', // [//]. <>/? ~!@#¥ ... &*() - | {} 【】 '; Rs+S.Substr (i, 1) .Replace (Muster, '');Nennen Sie diese Funktion einfach direkt.
Methode 2: Am grundlegendsten besteht darin, den Benutzer dazu aufzufordern, keine Sonderzeichen einzugeben
Funktion ShowKeypress (evt) {evt = (evt)? evt: window.eventreturn checksespecifickey (evt.KeyCode);} Funktion} checkspecificKey (KeyCode) {var specialey = "[` ~!#$^&*() = | {{} ':;', // [//]. listVar realkey = string.fromCharCode (KeyCode); var flg = false; flg = (SpecialKey.Indexof (RealKey)> = 0); if (flg) {// alert ('Bitte keine Sonderzeichen:' + RealKey zurückgeben;} return true;} document.onkeypress = showKeypress;Verwendung: Hinzufügen von Ereignissen auf der Eingabesteuerung reagiert überhaupt nicht
Es scheint ein kleines Problem zu sein. Es gibt keine Antwort im chinesischen Bundesstaat. Ich weiß nicht, was los ist, also habe ich einen anderen gefunden.
Methode 3: Nachdem das OnKeyUp -Ereignis erhalten wurde, entspricht es es ähnlich der Methode.
Funktion validateValue (textbox) {var illealString = "[` ~!#$^&*() = {} ':;', // [//]. <>/? ~!#¥… &*() - | {} 【】 '; textbox.Value.Charat (Index); if (illealString.indexof (s)> = 0) {s = textBoxValue.substring (0, Index); textBox.Value = s;}}Verwendung: OnKeyUp = "ValateValue (this)" Es wird sofort nach dem Eintritt verschwinden. Der Benutzer kann sehen, dass das, was ich eingegeben habe, nur sagt, dass er nach dem Eintritt verschwinden wird. Der Nachteil ist, dass die kontinuierliche Eingabe nicht verschwindet (halten Sie ihn nieder)
Die nächsthauptste Möglichkeit, die oben genannten zu neutralisieren
Methode 4: Verwenden Sie es direkt auf der Steuerung
// <input/[/w]/g, '') "/[^/d]/g, '')") "> // Das Kontrolleingangsfeld kann nur Text oder Zahlen eingeben, und Sonderzeichen können hier nicht die folgenden Zeichen eingeben: (wie!@#$%^&*usw.) <br> <br> <br> <br> <br>
Diese Methode können sehen, dass die Eingabe sofort verschwindet. Gleiches gilt für die Methode Drei, die kontinuierliche Eingabe ist gültig.
Schauen wir uns die folgenden JS an, um festzustellen, dass die eingegebenen Zeichen nicht Sonderzeichen sein können:
1. Das Dokument.onkeypress -Ereignis ist eine Überprüfung beim Eingeben eines Charakters. Der Korrespondenz ShowKeypress wird während der Überprüfung ausgeführt. Bei der Rückgabe kann es eingegeben werden und falsch kann nicht eingegeben werden.
2. EVT = (EVT)? EVT: Window.Event, Drücken der Tastatur generiert dieses Ereignis, um den von Ihnen eingegebenen Wert zu erhalten (es ist der Tastaturcode der Tastatur).
var realkey = string.fromCharCode (Schlüsselcode);
Die Methode String.FromCharCode () besteht darin, den Tastaturwert (Schlüsselcode) in den Wert umzuwandeln, den Sie tatsächlich eingeben.
3..
.Indexof () ist eine String -Methode. Die Indexof () -Methode der Zeichenfolge sucht, ob eine als Parameter übergebene Zeichenfolge in der Zeichenfolge angezeigt wird. Wenn eine Zeichenfolge gefunden wird, gibt sie die Ausgangsposition des Zeichens zurück (0 bedeutet das erste Zeichen, 1 bedeutet das zweite Zeichen und so weiter). Wenn es nicht gefunden wird, gibt es -1 zurück
4. Var specialey = "#$%/^*/'/"/+";
Hier sind Saiten mit Escape -Charakteren, #, $, %, ^, *, ', ", + sind besondere Symbole, und diejenigen mit / vor müssen entkommen werden.
Wenn Sie im Textfeld eingeschränkte Eingabe -Sondersymbole hinzufügen möchten, verwenden Sie <Eingabe type = "text" id = "name" OnKeypress = "ShowKeypress ()">
Die oben genannten sind die vier Möglichkeiten, Eingaben zu implementieren, die die Eingabe der Eingabe von Sonderzeichen verbieten. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!