Video: Governors, Senators, Diplomats, Jurists, Vice President of the United States (1950s Interviews) 2024
Prima regulă de injectare a codului în programele C ++ nu este niciodată, vreodată, permite ca datele introduse de utilizator să fie prelucrate de un interpret de limbă cu scop general. O eroare comună cu SQL-injection este că programul acceptă intrarea utilizatorului ca și cum ar fi întotdeauna acceptabilă și îl inserează într-o interogare SQL pe care o trimite apoi la motorul de bază de date pentru procesare.
De exemplu, un program care solicită introducerea de date la o dată poate fi hacked. Abordarea cea mai sigură și mai ușor de utilizat ar fi furnizarea către utilizator a unui grafic calendaristic din care să poată selecta datele de început și de sfârșit. Apoi, programul va crea o dată bazată pe ceea ce a făcut clic pe utilizator.
aaaa / mm / zi < - cu alte cuvinte, patru cifre urmate de un slash urmat de două cifre și un slash și în cele din urmă încă două cifre. Nimic altceva nu ar trebui considerat o intrare acceptabilă. Uneori nu puteți fi atât de specific în ceea ce privește formatul. Dacă trebuie să permiteți utilizatorului să introducă text flexibil, atunci puteți evita cel puțin caracterele speciale. De exemplu, este aproape imposibil să faceți injectarea codului SQL fără a utiliza nici un citat unic sau dublu.Nu puteți introduce etichete HTML fără să utilizați un semn mai mic de (). Sau puteți lua doar abordarea că orice altceva decât textul ASCII nu va fi tolerat:
// verificați un șir de caractere pentru a vă asigura că este drept ASCII size_type off = s. find_first_not_of ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_");Acest cod caută sirul
s
pentru un caracter care nu este unul dintre caracterele A până la Z, a prin z (string!: npos) {cerr