Ascundeți script-uri proteja site-

Internet a cunoscut apogeul dezvoltării sale rapide, iar acum nu au propriile site-uri, cu excepția cazului un animal de companie (deși unele marginale reușesc să mențină bloguri pentru animalele lor de companie). Dacă vom analiza și compara cantitatea de resurse create și numărul de mai mult sau mai puțin versat în materie de securitate a rețelei umane, vom obține o imagine destul de lamentabil. Principalul saitostroitel'stva flagel, cred, sunt script-uri disponibile în mod liber. Este doar așa sa întâmplat că, în cursul anilor au trecut prin mâinile mele un număr foarte mare de aceste creaturi, și de multe ori lasă o impresie foarte proastă. Cel mai groaznic lucru - este codul lor deschis, în care hackerii încerca să descopere o tona de vulnerabilități, și de multe ori
întâlnite credibilitatea acestor script-uri pentru utilizatori, considerat creatorul locuitorilor din cer, dacă nu, atunci cu siguranță kevinmitnikami de programare.

Pentru a începe pentru a defini configurația. Exemplele mele vor lucra la Perl până limba (le voi explica, astfel încât portarea în alte limbi nu va fi dificil) și serverul Apache. Pe hosting elemente de date cu reputație aproape toate sunt prezente în volumul necesar.

Ar trebui să precizăm că voi vorbi despre metodele de protecție împotriva pătrunderii prin script-uri web. demoni gaurite, configurare firewall, etc sunt dincolo de domeniul de aplicare al acestui material.

Să presupunem că am înscris pe scripturi scrise de prieteni străini, și a decis să scrie motorul „de la zero“. Lăudabil. Lucrarea este finalizată, erori critice sunt corectate, mastdaynye bug-uri fixe .... Ce fac acum? Și acum poți să faci tăiat-off niveluri sunt hackeri ridicate au devenit un haxor proverb. Deci, aici sunt câteva tehnici eficiente.

Ascunderea limbaj de programare

De ce un hacker să știe că site-ul nostru este scris în PHP sau Perl? Absolut nici un motiv. Simțiți-vă liber pentru a redenumi script-urile și să le dea un asp extensie, și apoi setați în mod corespunzător un server pentru procesarea asp fișiere cum ar fi Pl / php. Acesta permite să taie o parte din skriptkiddisov nerabdator deja la prima vizită.

Ascunderea structura site-ului

RewriteEngine on
RewriteRule ^ ([a-zA-Z] +) / ([0-9] +). HTML index.pl?cat=$1;id=$2
RewriteRule ^ ([a-zA-Z] +) index.pl?cat=$1

Pentru a completa imaginea, a se vedea ce anume serverul returnează antete atunci când se aplică această pagină .html, și le sincronizează cu titluri, script restante. Așa cum se spune, că nimeni nu a ghicit 🙂

Hackerii violat de multe ori scripturi curbe cereri, în scopul de a provoca eroarea. Ei de multe ori pot fi găsite necesare pentru a rupe informația. De multe ori văzut în script-urile altor oameni aceste linii:

deschis (fișier, $ file) || die ( „Nu am putut deschide fișierul de fișier $“);

Desigur, aceste lucruri sunt foarte utile atunci când se caută erori și depanare. Dar de ce spune-mi atacatorul să cunoască structura serverului și numele de fișier al script-ul săraci nu este capabil să citească? Da. Vom merge o altă cale. Toți mor, vom înlocui un fat_err, și în corpul acestei funcții, scrie următorul text ( „tekst_oshibki $!“):

Astfel, mesajul de eroare pentru utilizatorul va conține numai acest cod de eroare funcție generat localtime. utilizator respectabilă ne informează cu privire la aceasta și vom deschide fișierul jurnal și codul descifra textul, și, în același timp, să învețe IP-urile de utilizator.

Acest lucru, după cum știți, cel mai simplu exemplu de punere în aplicare. Puteți arunca chiar și dezinformarea atacator nefericitei, de exemplu, pentru a înlocui posturile de imposibilitatea de a deschide fișiere mesajelor MySQL. Să încercăm să găsim SQL Injection 😉 Totul este din nou limitat doar de imaginație. Experiment cu direcția pe care am dat.

Respingere erori fatale neașteptate

„Dar apoi voi muri! Și ce despre bug-uri neanticipate „-?! Exclamă cititorul atent, și va fi absolut corect. S-ar părea imposibil să urmărească toate erorile: există o diviziune de la zero, există o metodă incorectă, aceasta se numește o funcție inexistentă, apoi zaglyuchil Image :: Magick ... Toate acestea, și chiar zece mii de alte greșeli va duce la accident. Ce să fac? Ajutorul vine blocul eval.

Este remarcabil faptul că orice cod închis în ea, nu va cauza o eroare fatală script-ul. Chiar dacă există o eroare de sintaxă! Prin urmare, unii dezvoltatori, inclusiv eu, încheie aproape toate codul în eval.

De exemplu, să ia următorul cod:

El, destul de ciudat, va fi executat! Și „sfârșit“ va imprima. În acest caz, în variabila $ @ va conține o eroare din cauza căreia executarea de oprire eval.

Am găsit o greșeală, și apoi să acționeze ca și în ultimul paragraf: ascunde, sau a trecut printr-un filtru de expresii regulate și pornește într dezinformare.

Protecție împotriva forței brute

Încă câteva sfaturi

fat_error () în cazul în care $ query =

Și totuși. Nu, repet, lacune pentru a sparge pe această parte nu va. zerouri nucleare și alte Stomp de pădure sukulinzhektsii.

Dacă aveți dubii propriile abilități, și încă decis să scrie propriul lor motor, vă pot recomanda pentru a simula hacking. Da, nu am sigilat. Se lasă cod banal Sql-injectare a alerga proksik și desfigureze pe propriul site, face cu faptul că aproape orice începător care a citit cel puțin o pereche de camere Hacker. Apoi vom merge deja sub ip normal și eliminarea desfigurare. După ce a scris furnizorul că nostru mega-proiect futut de un astfel de scenariu și a cerut să explice ce se întâmplă. Concurența între hosterii destul de mari, iar eu știu multe cazuri când etrierul liber pentru a găsi codul de eroare, și a indicat acestora. Există o șansă ca ai noroc, și competent
Specialist examinarea codului, în plus față de a găsi în mod specific lacunele lăsate de alții care sunt în continuare din cauza unei supraveghere / incompetență.

50.000 de vizitatori pe zi) resursă deținută de o exploatație imens. Protecția nu a fost de forta bruta. Script - samopisny. Trage concluzii, domnilor.

Ai prea leneș pentru a face motorul în sine? Sau ești destul de slab în codificare și doresc să profite de soluții gata făcute? Afacerea ta. Nu uitați să puneți cele mai recente patch-uri, accesați resursele de securitate. Dar asta nu e tot.

motor modificat complet este problematică, cu toate acestea, pentru a scăpa de skriptkiddisov destul de reale. Nu este nici un secret faptul că mulți novice și nu atât de hackeri utilizează Google pentru a căuta victimele. Cât de vulnerabilă sunt motoarele uitat? Pe copywriting. În cazul în care conștiința ta este curat, din cauza lipsei complete a ca o clasă, șterge drepturile de autor la toate, dar știu că poate fi urmărit de către motor, este imoral și chiar ilegale. mod mai blând - este înlocuirea literelor latine în drepturile de autor asupra echivalentul lor chirilic. De fapt, ceea ce împiedică să înlocuiască sintagma „Powered by kSearch“ litera „o“, „e“, „a“ în chirilică frații lor? Aparent, totul va fi la fel de bine, dar nici unul dintre hacker va veni la site-ul dvs. prin intermediul serviciului Google.

Un număr mare de CMS, forumuri și alte script-uri pentru definirea administratorului persoanei responsabile orice funcție cum ar fi, de exemplu, „is_admin“. Să luăm, de exemplu, motorul YABB, în cazul în care o astfel de funcție. Să presupunem că avem IP-uri statice sau dinamice cu o gamă limitată (de exemplu, să ia „123.123.123.00-123.123.123.255“ interval), iar cu cealaltă nu intra în panoul de administrare.

Chiar la începutul funcției inserați codul de mai jos:

Acum, hacker-ul nu va ajunge la panoul de administrare, chiar și fără a cunoaște parola.

Pentru cei care știu cum să programeze cel puțin la nivel primar, există un alt mod, mai frumoasa precedent.

Pentru a rezuma, am remarcat că alegerea între propriile lor si a altor oameni script-uri pentru toată lumea se face. M-am oprit undeva la mijloc. Deci, o scurtă listă de recomandări pentru protecția organizației:

  • Filtrul maxim informațiile primite de la utilizator, verifică fiecare variabilă utilizată este utilizată ca număr de identificare, de intrare informații redundante numai să confunde atacator, cu nici un proces de scripting-l.
  • Ascundeți greșeli. Dacă credeți că utilizatorul medie, acestea nu îndeplinesc (hehe), Sui mor fără explicații.
    • Hides limba utilizată și structura de server.
  • Confunda atacator. Parametrii de intrare stanga deduce erori feykovye. Dezinformarea - toate noastre.
  • Când utilizați alte motoare de oameni sunt mascate de ei ca tine poate, și eu sunt atât de măsura în care timpul de competență și de agrement.

Principalul lucru este să-și petreacă mai mult timp organizarea protecției corespunzătoare. Odată cu introducerea unor noi variabile au fost definite în mod clar înainte de prima utilizare a tipului de date care conțin, și apoi se filtrează tot ceea ce nu face parte din tipul. În general, noroc, bun pentru tine în acest domeniu dificil. Amintiți-vă că oamenii alfabetizați sunt pe partea greșită a baricadelor.

Arată acest articol unui prieten: