Zuhause Persönliche Finanzen Wie man Code-Injection in C ++ vermeidet - dummies

Wie man Code-Injection in C ++ vermeidet - dummies

Video: Week 4 2024

Video: Week 4 2024
Anonim

Die erste Regel der Vermeidung von Code injizieren in C ++ - Programme ist nie, überhaupt, , dass Benutzereingaben von einem Universal-Sprachinterpreter verarbeitet werden können. Ein häufiger Fehler bei der SQL-Injection besteht darin, dass das Programm Benutzereingaben akzeptiert, als wäre es immer akzeptabel und fügt es in eine SQL-Abfrage ein, die es dann zur Verarbeitung an die Datenbank-Engine schickt.

Als Beispiel könnte ein Programm, das nach einer Benutzereingabe an einem Datum fragt, gehackt werden. Der sicherste und benutzerfreundlichste Ansatz wäre, dem Benutzer eine Kalendergrafik zur Verfügung zu stellen, aus der er die Start- und Enddaten auswählen kann. Das Programm würde dann ein Datum erstellen, das darauf basiert, worauf der Benutzer geklickt hat.

Wenn dies nicht möglich ist, sollte das Programm die Eingabe sorgfältig überprüfen, um sicherzustellen, dass die Eingabe im richtigen Format für ein Datum war, in diesem Fall yyyy / mm / dd < - mit anderen Worten, vier Ziffern gefolgt von einem Schrägstrich, gefolgt von zwei Ziffern und einem Schrägstrich und schließlich zwei weiteren Ziffern. Nichts anderes sollte als akzeptable Eingabe betrachtet werden. Manchmal können Sie über das Format nicht so spezifisch sein. Wenn Sie dem Benutzer erlauben müssen, flexiblen Text einzugeben, können Sie zumindest Sonderzeichen vermeiden. Zum Beispiel ist es so gut wie unmöglich, die SQL-Code-Injection ohne Verwendung eines einzelnen oder doppelten Anführungszeichens auszuführen.

Sie können keine HTML-Tags einfügen, ohne ein kleineres als () zu verwenden. Oder Sie könnten einfach den Ansatz wählen, dass etwas anderes als ASCII-Text nicht toleriert wird:

// überprüfe einige Zeichenfolgen, um sicherzustellen, dass es gerade ASCII-size_type off = s ist. find_first_not_of ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_"); if (off! = string:: npos) {cerr << "errorn";}

Dieser Code durchsucht die Zeichenfolge

s nach einem Zeichen, das nicht zu den Zeichen A bis Z gehört, a bis z, 0 bis 9 oder Unterstrich. Wenn es ein solches Zeichen findet, weist das Programm die Eingabe zurück.

Wenn Sie nur die hier gezeigten lateinischen Zeichen zulassen, ist Ihre Anwendung auf vielen ausländischen Märkten nicht verwendbar, z. B. wenn Sie keine englischen Zeichensätze verwenden (z. B. Arabisch, Chinesisch, Hebräisch oder Russisch, um nur einige zu nennen). Sie müssen möglicherweise den umgekehrten Weg einschlagen und nur nach den schlechten Charakteren suchen.
Wie man Code-Injection in C ++ vermeidet - dummies

Die Wahl des Herausgebers

Zum Hinzufügen von Arbeitsblättern zu Ihrer Excel 2013-Arbeitsmappe - dummies

Zum Hinzufügen von Arbeitsblättern zu Ihrer Excel 2013-Arbeitsmappe - dummies

Jede leere Arbeitsmappe, die Sie öffnen, enthält ein Einzelblatt mit dem prosaischen Namen Sheet1. Um weitere Blätter zu Ihrer Arbeitsmappe in Excel 2013 hinzuzufügen, klicken Sie einfach auf die Schaltfläche Neues Blatt in der Statusleiste (die mit Pluszeichen in einem Kreis). Jedes Arbeitsblatt, das Sie mit der Befehlsschaltfläche Neues Blatt hinzufügen, ist ...

Wie man bedingte Formatierung in Excel 2010 anwendet - dummies

Wie man bedingte Formatierung in Excel 2010 anwendet - dummies

Mit der bedingten Formatierung von excel 2010 können Sie das Aussehen von eine Zelle basierend auf ihrem Wert oder dem Wert einer anderen Zelle. Sie geben bestimmte Bedingungen an, und wenn diese Bedingungen erfüllt sind, wendet Excel die Formatierung an, die Sie auswählen. Sie können die bedingte Formatierung verwenden, um Datumsangaben zu suchen, die bestimmte Kriterien erfüllen (z. B. fallen auf ...

Die Wahl des Herausgebers

ASVAB Vorbereitung: Wie man Brüche multipliziert und dividiert - Dummies

ASVAB Vorbereitung: Wie man Brüche multipliziert und dividiert - Dummies

Es wird erwartet, dass festes Verständnis des mathematischen Grundwissens, wenn Sie das ASVAB nehmen. Multiplizieren und Dividieren von Brüchen sind zwei der Dinge, die Sie wissen müssen. Fraktionen multiplizieren Fraktionen multiplizieren ist sehr einfach. Alles, was Sie tun müssen, ist, die Zähler untereinander zu multiplizieren und die Nenner mit ... zu multiplizieren.

ASVAB-Praxis: Beispiel-Fragen zu Word-Kenntnissen - Dummies

ASVAB-Praxis: Beispiel-Fragen zu Word-Kenntnissen - Dummies

Sie müssen für die Word-Wissensprobleme bereit sein auf dem ASVAB. Das Format, das Sie unten sehen, ist ein gutes Beispiel dafür, was Sie finden werden, wenn Sie das ASVAB benutzen. Beispielfragen Wortwissenszeit: 11 Minuten für 35 Fragen Anleitung: Der Wortwissensubtest ist der dritte Untertest ...

ASVAB: Paragraph Comprehension Subtest Beispiel Testfragen - Dummies

ASVAB: Paragraph Comprehension Subtest Beispiel Testfragen - Dummies

Zeit für Sie, all Ihre ASVAB Vorbereitung zur guten Verwendung. Fragen Sie sich anhand der folgenden Beispieltestfragen, ob Ihr Leseverständnis auf dem neuesten Stand ist. Lesen Sie jeden kurzen Absatz, dem eine oder mehrere Fragen zu den in dieser Passage enthaltenen Informationen folgen. Achten Sie darauf, den Absatz sorgfältig zu lesen ...

Die Wahl des Herausgebers

Zoomen und Schwenken in AutoCAD - Dummys

Zoomen und Schwenken in AutoCAD - Dummys

AutoCAD erleichtert das Schwenken, indem es Bildlaufleisten und Echtzeit-Schwenken bietet. Beim Echtzeit-Panning (im Gegensatz zum Vorgabezeit-Panning?) Können Sie Objekte auf dem Bildschirm sehen, wenn Sie die Maus nach oben und unten oder vor und zurück bewegen. Natürlich bewegt sich der Standpunkt, nicht die Objekte. Sowohl das Schwenken als auch das Zoomen ändern die Ansicht ...

Mit AutoCAD LT 2005 DesignCenter - Dummies

Mit AutoCAD LT 2005 DesignCenter - Dummies

DesignCenter ist ein dummer Name für eine nützliche, wenn auch etwas ausgelastete Palette. Die DesignCenter-Palette ist praktisch für das Extrahieren von Daten aus allen Arten von Zeichnungen. Während sich die Eigenschaftenpalette mit Objekteigenschaften beschäftigt, behandelt die DesignCenter-Palette hauptsächlich benannte Objekte: Ebenen, Linientypen, Blockdefinitionen (dh Symboldefinitionen), Textstile und andere Organisationsobjekte ...

Was Sie über AutoCAD-Koordinatensysteme wissen sollten - Dummies

Was Sie über AutoCAD-Koordinatensysteme wissen sollten - Dummies

Jeder Punkt in einer AutoCAD-Zeichnungsdatei kann identifiziert werden durch seine X-, Y-, Z-Koordinaten. (In den meisten 2D-Zeichnungen ist der Z-Koordinatenwert 0. 0.) Dieses Koordinatensystem wird in AutoCAD als Weltkoordinatensystem oder WCS bezeichnet. Koordinateneingabe Die direkteste Methode, um Punkte präzise einzugeben, ist die Eingabe von Zahlen mit dem ...