Website Security !

Despre PHP, MySQL, HTML, C++, VB, JAVA etc.

Moderator: Moderatori

Post Reply
User avatar
Cradle
Posts: 92
Joined: Wed May 05, 2004 1:44 pm

Website Security !

Post by Cradle »

Ok, daca vreau sa fac un site si vreau sa "reziste" atacurilor de hackeri (cat mai mult) ce trebuie sa fac. De ce anume depinde securitatea site-ului ? Are legatura cu limbajul de programare (html, php, asp...) ? Cum pot proteja un site sau cum le fac nopti albe hackerilor/lamerilor/etc. ? Are legatura si cu Web Hosting-ul ? Dar daca vreau sa vand diverse obiecte pe site pot sa-l programez in html sau trebuie in alt limbaj ?

offtopic - pe cateva site-uri nu m-au lasat sa dau click dreapta. Imi aparea un Message Box ce continea de exemplu "www.xxxxxx.xx is copyright to xxxxxx." sau "You are not allowed to right click on this page ! All pictures are trademark of xxxxxx !" (nici n-am nevoie de right click/save picture as... cand stau 2-3 secunde cu mouse-ul pe o poza si apare o bara cu Save As.../Email/etc. - in fine). Cum pot sa fac si eu asta ? Mai era una, nu te lasa sa salvezi site-ul din File/Save As...". Cum pot sa pun si eu astea pe site-ul meu ? Are cineva vreun cod - parca era un cod intr-un fisier .css (nu sunt sigur daca era .css) care nu te lasa sa faci ce am scris eu mai sus.
Last edited by Cradle on Wed Jul 28, 2004 1:58 am, edited 1 time in total.
User avatar
andrei
Posts: 7528
Joined: Sun Mar 24, 2002 2:00 am

Post by andrei »

securitatea cred că nu depinde de siteul tău, ci de cât de sigur este serverul care ţi-l găzduieşte.

work harder
User avatar
Cradle
Posts: 92
Joined: Wed May 05, 2004 1:44 pm

Post by Cradle »

N-are nici cea mai mica legatura cu limbajul de programare ?
Am sa ma interesez si o sa va anunt ce aflu.

Pana atunci mai puteti sa va dati cu parerea. :)
User avatar
andrei
Posts: 7528
Joined: Sun Mar 24, 2002 2:00 am

Post by andrei »

din auzite pot spune că java este un limbaj sigur. de ce, nu aş putea să demonstrez.

work harder
User avatar
Dr. Voidberg
Moderator
Posts: 2718
Joined: Tue Dec 24, 2002 1:17 pm

Post by Dr. Voidberg »

Ba are legatura si cu limbajul de programare. Niste scripturi facute la repezeala pot face ca un individ malitios sa execute comenzi shell pe server, sa-ti umple baza de date cu prostii, etc.
Uite doua exemple. Presupunem ca ai un guestbook care stocheaza in baza de date intrarile.
1) Daca folosesti GET la formularul de trimitere a comentariilor din guestbook cineva poate sa faca un script care sa ruleze de n ori http://situltau.ro/gbook.php?action=add ... riu=blabla
Rezultatul va fi o baza de date plina cu chestii d-astea.
Solutia aici e sa folosesti POST in loc de GET.
2) Daca bagi in baza de date exact ce scrie el in formular, fara sa prelucrezi textul poti avea surprize. Individul poate sa scrie ceva de genul:

Code: Select all

<script>
alert("Te-am haxorit");
</script>
sau chiar ceva de genul asta:

Code: Select all

<?php
shell_exec('rm -rf /');
?>
In momentul afisarii codul respectiv se executa.
Astea sunt doua exemple banale, gaurile posibile sunt mult mai multe.
96 percent of Americans believe that Mr. T still pities the fool.
Radical dreamer
User avatar
The Beast
Posts: 2487
Joined: Wed Jun 04, 2003 11:45 am

Post by The Beast »

s|lent wrote:securitatea cred că nu depinde de siteul tău, ci de cât de sigur este serverul care ţi-l găzduieşte.
Trebuie sa te contrazic ! serverul poate avea securitate=0 si tu sa ai un program d securitate instalat pt site si sa nu ai probleme!
User avatar
Dr. Voidberg
Moderator
Posts: 2718
Joined: Tue Dec 24, 2002 1:17 pm

Post by Dr. Voidberg »

The_Beast wrote:
s|lent wrote:securitatea cred că nu depinde de siteul tău, ci de cât de sigur este serverul care ţi-l găzduieşte.
Trebuie sa te contrazic ! serverul poate avea securitate=0 si tu sa ai un program d securitate instalat pt site si sa nu ai probleme!
Nu e chiar asa, daca aia au o varianta antica de ssh pe server de exemplu, poti sa ai scripturi de la NASA pe sit, in 5 minute ala trece de ssh si le rade / dezactiveaza.
96 percent of Americans believe that Mr. T still pities the fool.
Radical dreamer
User avatar
std
Moderator
Posts: 4317
Joined: Sat Mar 16, 2002 2:00 am

Post by std »

Securitatea unui site depinde de mai multe lucruri. Daca vrei tu, hai sa le luam pe rand.

1. Sistemul de operare folosit de server. Asa cum zicea Void, un exemplu este folosirea unor versiuni foarte vechi ssh. Este vorba de securitatea oricarui calculator in general in cazul asta.

2. Serverul folosit. Fiecare server are "gaurile" lui. De exemplu, in cazul Apache, exista, in versiunile mai vechi, posibilitatea de a lansa un atac tip buffer overflow prin trimiterea unor caractere suplimentare in cererea paginii. Dupa care, daca securiteatea serverului a fost compromisa, normal ca se poate lua de site-ul tau cum vrea.

3. Site-ul tau. Indiferent de limbajul de programare. Orice script CGI poate fi vulnerabil.
User avatar
Develz
Posts: 84
Joined: Thu Aug 12, 2004 3:53 pm

Post by Develz »

eu zic ca in primul rand, haxorul trebuie sa stie codul sursa al programului de pe site-ul tau din 2 motive :

1. va vedea ce fisiere contin class / funtions : de care el are nevoie sa "recupereze" parolele de la baza de date ...

2. fisiere importante care contin parolele de la baza de date / ftp ( sunt module php care au parolele de ftp inscrise in ele ) / care nu sunt chmod-ate bine, pot lasa un haxor sa le citeasca ... avand ca rezultat ... compromiterea site-ului ...
Doua lucruri m-au umplut neincetat de o isterie metafizica : un ceas care sta, si un ceas care umbla.
User avatar
Ady G Elber
Posts: 321
Joined: Thu Oct 31, 2002 2:00 am

Post by Ady G Elber »

Ca sa nu poata nimeni sa dea click-dreapta pe pagina ta introduci scriptul asta :

<script language="JavaScript">
<!--



var isNav4, isIE4

if (parseInt(navigator.appVersion.charAt(0)) >= 4) {

isNav4 = (navigator.appName == "Netscape") ? true : false

isIE4 = (navigator.appName.indexOf("Microsoft" != -1)) ? true : false

}

if (isNav4) {

document.captureEvents(Event.MOUSEDOWN);

}

function click(e) {

if (isNav4 && e.which != 1) {

alert ("Contents Copyrighted. Please contact Ady G Elber at adygelber@go.ro for more details.");

return false;

}

if (isNav4 && e.which == 1) {

return true;

}

if (isIE4 && event.button==2) {

alert("Contents Copyrighted. Please contact Ady G Elber at adygelber@go.ro for more details.")

return false;

}

return true;

}

document.onmousedown=click

//-->
</script>

Bineinteles ca vei modifica mesajul ....
DigitalFeelings v2.2
User avatar
r4zv4n
Posts: 2960
Joined: Tue May 04, 2004 12:12 am

Post by r4zv4n »

s|lent wrote:securitatea cred că nu depinde de siteul tău, ci de cât de sigur este serverul care ţi-l găzduieşte.
Si eu tin sa te contrazic. Un script prost scris poate compromite securitatea site-ului, a bazei de date, etc.

Spre exemplu, un script de login care nu este bine programat, poate fi crackuit prin SQL injection.

Query-urile la baza de date pot fi gadilate de un cunoscator in asa fel incat sa afiseze pe pagina informatii compromitatoare.

Un scritp care nu are implementate mecanisme de error handling, daca este "maltratat", poate da detalii despre locatiile si numele bazelor de date , utilizatori, etc.
Develz wrote:eu zic ca in primul rand, haxorul trebuie sa stie codul sursa al programului de pe site-ul tau din 2 motive :

1. va vedea ce fisiere contin class / funtions : de care el are nevoie sa "recupereze" parolele de la baza de date ...

2. fisiere importante care contin parolele de la baza de date / ftp ( sunt module php care au parolele de ftp inscrise in ele ) / care nu sunt chmod-ate bine, pot lasa un haxor sa le citeasca ... avand ca rezultat ... compromiterea site-ului ...
Nu este obligatoriu sa stie codul sursa.

Pe de alta parte, un server cu permisiunile bine configurate nu va lasa haxorul sa downloadeze codul sursa ci il va executa.

Iar fisierele care contin parole, pot fi tinute in foldere care nu sunt accesibile de pe web ;)

Pe scurt, sustin opiniile prezentate de Void si std: securitatea unui site este determinata de o combinatie de programare de calitate si o buna configurare a serverului (prin asta ma refer si la programul de server si la server ca sistem de operare).

Ar fi multe de discutat in acest domeniu.. ;)
Sunt foarte misterios. De multe ori nici eu nu ştiu ce fac.
Mood: "I can't help but feeling that love is always dealing me a losing hand" (Deep Dish - "Sacramento")

Image
User avatar
Dr. Voidberg
Moderator
Posts: 2718
Joined: Tue Dec 24, 2002 1:17 pm

Post by Dr. Voidberg »

Ady G Elber wrote:Ca sa nu poata nimeni sa dea click-dreapta pe pagina ta introduci scriptul asta :
Dai disable Javascript sau folosesti o extensie ca asta si gata, right click. :)
96 percent of Americans believe that Mr. T still pities the fool.
Radical dreamer
User avatar
Ady G Elber
Posts: 321
Joined: Thu Oct 31, 2002 2:00 am

Post by Ady G Elber »

Ok, OK, oricum nu l-am scris eu...mi l-a dat si mie un tip din Canada care se ocupa cu webdesign-ul. Eu nu stiu deloc JavaScript, mai iau si eu scripturi de pe net, dar oricum nu le folosesc....am ciudatenia mea: imi place ca tot ce apare pe o pagina de-a mea sa fie facut 100% de mine.
DigitalFeelings v2.2
User avatar
bloomfield
Posts: 214
Joined: Sat Sep 13, 2003 2:55 pm

Post by bloomfield »

Void wrote: 1) Daca folosesti GET la formularul de trimitere a comentariilor din guestbook cineva poate sa faca un script care sa ruleze de n ori http://situltau.ro/gbook.php?action=add ... riu=blabla
Rezultatul va fi o baza de date plina cu chestii d-astea.
Solutia aici e sa folosesti POST in loc de GET.
Soluţia nu este de loc să foloseşti POST în loc de GET. Cineva suficient de isteţ poate face un script care să ruleze de n ori şi să facă requesturi POST/
O barmaniţă virtuală aş putea accepta
...dar o bere virtuală?? Niciodată!
User avatar
qbic
Posts: 13
Joined: Mon Aug 23, 2004 9:48 am

Securitate prog web

Post by qbic »

1) POST in loc de GET
2) cookies - ID-ul de sesiune nu trebe sa se transmita prin URL caci sesiunea poate fi acaparata
3) atentie la SQL injection pt username
4) Validare, validae, validare
5) altele

PS daca kair te intereseaza securitatea.... md5(parola) inainte de a o trimite.
User avatar
std
Moderator
Posts: 4317
Joined: Sat Mar 16, 2002 2:00 am

Post by std »

True, true.
Ar trebui luata in considerare si varianta folosirii https, cu autentificare prin SSL.
User avatar
qbic
Posts: 13
Joined: Mon Aug 23, 2004 9:48 am

Post by qbic »

Daka vrei si mai multa securitate decat SSL poti pune un control activX(sau un jscript, sau altceva - dupa preferinte) care sa semneze digital tot ce transmiti si sa verifici la server daca a venit de unde trebuia....(desi ar cam creste load-ul la verificari pentru orice date primite) (asta nu inseamna ca nu poti folosi si ssl).

Desi nu tine de securitatea website-ului poti pune la partea de logare si o poza cu text/numere (generata aleator) pe care sa il pui pe user sa o copieze intr-un textbox.... variatiuni pot sa exite pe tema asta destule.
User avatar
Dr. Voidberg
Moderator
Posts: 2718
Joined: Tue Dec 24, 2002 1:17 pm

Post by Dr. Voidberg »

Buba cu un ActiveX este ca merge doar pe Internet Explorer.
96 percent of Americans believe that Mr. T still pities the fool.
Radical dreamer
User avatar
qbic
Posts: 13
Joined: Mon Aug 23, 2004 9:48 am

Post by qbic »

atunci javra script, java....
User avatar
Yoshi
Posts: 3085
Joined: Sat Mar 29, 2003 10:00 pm

Re: Securitate prog web

Post by Yoshi »

qbic wrote:1) POST in loc de GET
Asta în unele situaţii poate fi chiar deranjant. Atunci când introduci cu formularul date în baza de date, de acord, la autentificare iar, dar la o căutare. De exemplu aici nu pot da link pentru căutare pe forum ca de exemplu la google.
User avatar
qbic
Posts: 13
Joined: Mon Aug 23, 2004 9:48 am

Post by qbic »

De acord, dar acest thread era de websecurity ..... so un search poate folosi GET dar trebuie sa fie atent la SQL Injection (care depinde si de DB-ul folosit....)
Post Reply