Securitatea site-ului

cadou
Mesaje: 284

Securitatea site-ului

Inca sunt in lucru cu site-ul meu si ma tot gandesc mereu, oare am facut bine pagina asta ? Oare se poate cumva sa patrunda cineva si sa faca "rau" pe aceasta pagina ?

Am incercat ca la fisierele ce le actionez dintr-un form prin ajax sa le fac oarecum o protectie si anume:

Cod: Selectaţi tot

function delete_articol(did){ $.ajax({ url: '/discutii/delete.php', type:'POST', data:'did='+did , success:function(m){ if(m == 'yes'){ $('#discutie'+ did).slideUp(); } else { var msg = new popWindow({ messageHeader : '<font color="red">Eroare', messageContent: m+'</font>' }); msg.open(); } } }); }
Aici este un exemplu de un cod care doresc sa explic ceea ce am vrut sa zic prin "protectie". Daca cineva doreste sa acceseze din adress bar direct adresa ....ro/discutii/delete.php sa nu i se permita sa vada pagina ...
Prin intermediul formularelor, input-urilor, textarea sa se introduca vre-un cod de orice natura ce poate cauza diverse neplaceri in functionarea site-ului, stergere diverse fisiere din site sau din baza de date .... ????
La ce alte aspecte ar trebui sa mai am grija in constructia site-ului ?

P.S in timp ce construiesc site-uri, am conditii ca eu ca si admin sa am acces la diverse (exemplu: sa sterg/editezorice articol, postat de oricine de pe site)

MarPlo
Salut
O pagina php poate fi accesata si din exterior prin cUrl, si se pot transmite date prin POST cu cUrl.
- Securitatea se face pe codul script-ului.

1. Seteaza o sesiune pt. admin si sa se efectueze acele instructiuni doar daca acea sesiune e valida.
2. Filtreaza datele primite prin POST/GET pe campurile de formular respective.
- De exemplu: campurile pt. nume de fisiere, email, titlu sa nu contina tag-uri html (cu strip_tags() ).
3. Pentru operatiuni cu baza de date (in special Insert /Update /Delete) foloseste Prepare-Execute cu $sql cu inlocuitori.

- Subiectul e deschis si pentru alte recomandari sau corectari de la cei cu experienta.

cadou
Multumesc pentru raspuns!
Acum revin ca sa detaliez putin primul punct de pe lista.

Eu ca si conditie pentru actiunile mele de admin, as avea asa:

Cod: Selectaţi tot

if($_SESSION['nume'] == $numeadminsite) { // ceea ce vreau pentru admin }
Inca sunt la inceput, iar unele lucruri mi se par a fi spune in chineza, inca mai am muuuult de invatat.
Cum as putea seta o sesiune pt admin ?
Daca las asa cum am facut cu conditia de mai sus are ceva ?
Detalii, daca se poate

Multumesc anticipat!

P.S -> cam asta ar fi site-ul meu :D www.cobadin.ro , (daca deranjeaza link-ul, editeaza comentariul acesta, stergand acest link) , multumesc :)

cotos93
tocmai am intrat pe site-ul tau ! si poate fi hack-uit usor ! te poti loga cu user + parola formata din: 1' or '1'='1

cadou
Si ce sfaturi imi dai pentru a proteja site-ul ?

Inca stau si ma gandesc cum as putea securiza site-ul pentru a nu fi accesat rau intentionat ...

cotos93
foloseste PDO la conexiune ! eventual nu folosi direct $_POST['pass'] in query , incearca cu
$parola = htmlspecialchars($_POST['pass']);

la username foloseste aceias chestie !

cadou
folosesc PDO,
inca sunt la inceput de drum, mai am de lucru, cunostintele mele sunt de incepator.
am facut ce mi-ai zis.

Daca ai avea timp si ai vrea, poti sa mai incerci sa vezi ce "bube" mai am la securtitate ?

Iti multumesc anticipat

MarPlo
Ca sa eviti conectarea prin instructiuni transmise in datele de conectare, filtreaza acele date sa contina doar caractere sigure, fara tag-uri, backslash sau ghilimele.
De exemplu:

Cod: Selectaţi tot

function filterStr($str){ $str = strip_tags($str); $str = str_ireplace(['"', "'", '\\'], '', $str); return trim($str); } $name = isset($_POST['name']) ? filterStr($_POST['name']) :''; $password = isset($_POST['password']) ? filterStr($_POST['password']) :'';

misat
Pe PDO este metoda quote, cu care poti ecrana caractere "nedorite" in cereri.
http://php.net/manual/en/pdo.quote.php

cotos93
Mai ai o problema, daca dai pe conectare si acolo la conectare dai sa recuperezi parola ! Dupa aceea sa dai iar conectare nu mai merge iti apare in continu chestia cu recuperare parola !

cadou
Cred ca am rezolvat problema. Sper ca am inteles din explicatiile tale ce trebuie sa modific.
Multumesc!

Subiecte similare