Vă mulțumim pentru susținere

Prinde SQL Injection și alte solicitări de pagini rău intenționate

Caut un instrument care să detecteze cereri rău intenționate (cum ar fi injecții evidente SQL sau postări) și va interzice imediat adresa IP a solicitantului / adăugarea la o listă neagră. Sunt conștient de faptul că într-o lume ideală, codul nostru ar trebui să fie capabil să facă față acestor solicitări și să le trateze în consecință, dar există o mare valoare pentru un astfel de instrument, chiar și atunci când site-ul este sigur de aceste atacuri, salvarea lățimii de bandă, prevenirea umflăturilor de analiză etc.

În mod ideal, căut o soluție cross-platform ( LAMP / .NET ) care se află la un nivel mai înalt decât stiva de tehnologie; probabil la nivelul serverului web sau al hardware-ului. Nu sunt sigur dacă există.

În orice caz, aș dori să aud feedback-ul comunității, astfel încât să văd ce opțiuni ar putea fi în ceea ce privește implementarea și abordarea.

0
adăugat editat
Vă rugăm să selectați cel mai bun răspuns, mulțumesc.
adăugat autor mruanova

8 răspunsuri

Problema cu un instrument generic este că este foarte dificil să vină cu un set de reguli care să se potrivească doar împotriva unui adevărat atac.

Cuvintele cheie SQL sunt toate cuvintele în limba engleză și nu uitați că șirul

 DROP TABLE users;

este perfect valabil într-un câmp care, de exemplu, conține un răspuns la o întrebare de programare.

Singura opțiune sensibilă este de a dezinstala intrarea înainte de al trece în baza de date, dar să o transmiteți totuși. În caz contrar, o mulțime de utilizatori perfect normali, non-malware vor fi interzise de pe site-ul dvs.

0
adăugat

Un lucru mic de reținut: în unele țări (adică cea mai mare parte a Europei), oamenii nu au adrese IP statice, astfel încât listarea neagră nu ar trebui să fie pentru totdeauna.

0
adăugat

O metodă care ar putea funcționa pentru unele cazuri ar fi să luați șirul de șabloane SQL care ar funcționa dacă utilizați naiv datele de formular și să le transmiteți unui cod care numără numărul de instrucțiuni care ar fi efectiv executate. Dacă este mai mare decât numărul așteptat, atunci există o șansă decentă ca o încercare de injectare să fie încercată, în special pentru câmpuri care sunt puțin probabil să includă caractere de control cum ar fi numele de utilizator.

Ceva ca o casetă text normal ar fi un pic mai greu, deoarece această metodă ar fi mult mai probabil să se întoarcă false pozitive, dar ar fi cel puțin un început.

0
adăugat

Acum, când mă gândesc la asta, un filtru Bayesian similar celui folosit pentru a bloca spam-ul ar putea funcționa decent. Dacă ați adunat un set de text normal pentru fiecare domeniu și un set de injecții sql, este posibil să îl puteți instrui pentru a ataca atacurile de injectare.

0
adăugat

Oracle are un tutorial online despre SQL Injection . Chiar dacă doriți o soluție gata făcută, acest lucru vă poate oferi câteva sugestii despre cum să o utilizați mai bine pentru a vă apăra.

0
adăugat

Interesant cum acest lucru este pus în aplicare ani mai târziu de către Google și ei elimina URL-ul toate împreună, în scopul de a preveni atacurile XSS și alte acitivites malware

0
adăugat

Aproape că te uiți la ea într-un mod greșit, nici un instrument de 3 părți care nu este conștient de metodele de aplicare / nume / date / domeniu va fi capabil să vă protejeze perfect.

Ceva ca prevenirea injectării SQL este ceva care trebuie să fie în cod și cel mai bine scris de către cei care au scris SQL, deoarece aceștia sunt cei care vor ști ce ar trebui / nu ar trebui să fie în acele domenii (dacă proiectul dvs. nu are docs foarte bun )

Dreptul tău, toate astea au fost făcute înainte. Nu trebuie să reinventați roata, dar trebuie să sculptați unul nou, din cauza diferențelor în diametrul tuturor axelor.

Aceasta nu este o problemă a drop-in și a alerga, într-adevăr trebuie să fiți familiarizați cu exact ceea ce este injecția SQL înainte de a putea preveni aceasta. Este o problemă mascată, așa că este nevoie și de protecții mascate în mod egal.

Aceste 2 link-uri mi-au învățat mult mai mult decât elementele de bază despre acest subiect pentru a începe și m-au ajutat să-mi exprim mai bine căutările viitoare pe anumite întrebări care nu au fost răspunsate.

Si in timp ce acesta nu este un detector de 100%, acesta va "arata lumina" asupra problemei existente in codul existent, dar ca si standardele web, nu incetati sa codificati o data ce treceti acest test.

0
adăugat

One of my sites was recently hacked through SQL Injection. It added a link to a virus for every text field in the db! The fix was to add some code looking for SQL keywords. Fortunately, I've developed in ColdFiusion, so the code sits in my Application.cfm file which is run at the beginning of every webpage & it looks at all the URL variables. Wikipedia has some good links to help too.

0
adăugat