Pagina 1 din 1
Securitatea site-ului
Scris: Vin Noi 03, 2017
de cadou
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)
Securitatea site-ului
Scris: Vin Noi 03, 2017
de 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.
Securitatea site-ului
Scris: Vin Noi 03, 2017
de 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
www.cobadin.ro , (daca deranjeaza link-ul, editeaza comentariul acesta, stergand acest link) , multumesc
Securitatea site-ului
Scris: Lun Noi 13, 2017
de 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
Securitatea site-ului
Scris: Lun Noi 13, 2017
de 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 ...
Securitatea site-ului
Scris: Lun Noi 13, 2017
de cotos93
foloseste PDO la conexiune ! eventual nu folosi direct $_POST['pass'] in query , incearca cu
$parola = htmlspecialchars($_POST['pass']);
la username foloseste aceias chestie !
Securitatea site-ului
Scris: Lun Noi 13, 2017
de 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
Securitatea site-ului
Scris: Lun Noi 13, 2017
de 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']) :'';
Securitatea site-ului
Scris: Lun Noi 13, 2017
de misat
Pe PDO este metoda quote, cu care poti ecrana caractere "nedorite" in cereri.
http://php.net/manual/en/pdo.quote.php
Securitatea site-ului
Scris: Mar Noi 14, 2017
de 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 !
Securitatea site-ului
Scris: Mar Noi 14, 2017
de cadou
Cred ca am rezolvat problema. Sper ca am inteles din explicatiile tale ce trebuie sa modific.
Multumesc!