ACCES INTERZIS | blog de programare si securitate IT




 06 2010 @ 19:42 

Scriptul PHP din spatele acestui formular de upload:

  • rezolva problema spatiilor goale din numele imaginii
  • restrictioneaza numarul maxim de caractere al numelui imaginii  si ce tip de caractere poate sa contina numele imaginii
  • permite utilizatorului sa uploadeze doar imagini (celelalte tipuri de fisiere, posibil malitioase, cum ar fi fisiere executabile, fisiere .php, fisiere .js nu pot fi urcate)
  • specifica ce tipuri de imagini pot fi uploadate (.jpg, .jpeg, .gif, .png)
  • restrictioneaza marimea maxima a imaginii
  • restrictioneaza latimea pe care o poate avea imaginea
  • restrictioneaza inaltimea pe care o poate avea imaginea
  • verifica daca folderul images exista pe server (daca nu exista il creaza)
  • verifica daca mai exista in folderul images inca o imagine cu acelasi nume
  • numeroteaza dinamic fiecare imagine uploadata (trebuie sa dam permisiile 0777 folderului images ca scriptul PHP sa il poata citi)
  • schimba numele imaginii uploadate pe server

Citeste tot articolul »

Post to Twitter Publica acest articol pe Twitter

Publicat de: admin
Ultima modificare: 10, 2010, 15:57
Comentarii: 0
Etichete
Etichete: ,
Categorii: programare
 05 2010 @ 16:53 

Am vazut pe net multe siteuri cu continutul prezentat in mai multe limbi. Ceea ce este un lucru bun si imbucarator. Gresita, sau cel putin grosiera, era modalitatea de realiza acest lucru si anume se crea pentru fiecare limba in parte un folder nou in care se stocau fisierele ce alcatuiesc websiteul. Acest lucru are multiple dezavantaje:

  • se ocupa inutil spatiu pe server
  • se pierde timp mult atunci cand clientul cere o modificare sau un update
  • iti dai cu firma in cap daca codezi in stilul asta websiteurile

De aceea voi prezenta mai jos o tehnica de a genera continutul unui website mult mai elegant folosindu-ma de limbajul de scripting server-side PHP.

Folosind aceasta tehnica websiteul este indexat de catre motoarele de cautare (Google, Yahoo, Bing, Ask.com) in toate limbile in care este afisat continutul (engleza, romana, franceza, germana, italiana, spaniola etc.). Scriptul PHP genereaza in toate limbile pana si titlul si metadatele paginii.

Citeste tot articolul »

Post to Twitter Publica acest articol pe Twitter

Publicat de: admin
Ultima modificare: 05, 2010, 18:27
Comentarii: 1
Etichete
Etichete:
Categorii: programare
 05 2010 @ 11:25 

De multe ori am avut nevoie sa rulez functia PHP phpinfo() ca sa aflu niste detalii legate de serverul web ce imi gazduieste fisierele. De aceea am facut o pagina phpinfo.php pe care o deschid oridecateori am nevoie sa aflu cate ceva despre setarile serverului.

<?php
phpinfo();
?>

Problema e ca accesul la continutul paginii nu este restrictionat. Oricine de pe intreg mapamond care are un PC conectat la Internet poate vedea continutul paginii mele. Ceea ce nu este prea indicat. Asadar, trebuie sa creez un sistem de autentificare care sa permita doar persoanelor autorizate sa vada continutul paginii. Acest sistem de autentificare este destul de simplu. Nu necesita un formular de login sau o baza de date. Ma folosesc doar de array-ul superglobal $_GET.

Citeste tot articolul »

Post to Twitter Publica acest articol pe Twitter

Publicat de: admin
Ultima modificare: 05, 2010, 11:32
Comentarii: 0
Etichete
Etichete:
Categorii: programare, securitate IT
 04 2010 @ 18:54 

Un website (website de prezentare, blog, forum, magazin online, portal) este alcatuit din doua parti:

  • frontend – este  partea publica a unui website unde se gaseste tot continutul lui (text, imagini, video, animatii Flash). Frontend-ul este destinat vizitatorilor. De exemplu, frontend-ul unui website de prezentare al unei firme este constituit din toate paginile sale cum ar fi pagina “Despre” (unde firma prezinta istoricul firmei si profilul de activitate al firmei), pagina “Portofoliu” (unde firma prezinta lucrarile realizate si proiectele in curs de realizare), pagina “Galerie” (unde vizitatorul gaseste o galerie de imagini cu produsele firmei), pagina “Contact” (unde vizitatorul poate intra in legatura cu detinatorii firmei) s.a.m.d..
  • backend – este partea cu acces restrictionat din spatele websiteului pe care numai un numar limitat de utilizatori o pot accesa pe baza unei autentificari. Din backend se administreaza continutul de pe frontend si chiar se pot face modificari asupra designului, structurii si functionalitatii frontend-ului in sine. Spre deosebire de frontend, backend-ul nu trebuie sa fie indexat de motoarele de cautare (Google, Yahoo, Bing, Ask.com etc.). Ca sa evitam acest lucru vom scrie in fisierul robots.txt din folderul radacina a websiteului urmatoarele linii:
    User-agent: *
    Disallow: /backend/
    

In loc de termenul backend se mai folosesc termenii sectiune de administrare si CMS (de la Content Managment System – in limba engleza, Sistem de gestionare a continutului). Cand intalnim unul din acesti termeni trebuie sa stim ca se face referire la unul si acelasi lucru.

Ca sa restrictionam accesul la sectiunea de administrare trebuie mai intai sa inregistram toti utilizatorii intr-o baza de date. Apoi cream un formular de autentificare a utilizatorilor sectiunii de administrare si un tabel, numit ai_authentication_logs, in care vom inregistra loguri despre autentificarile facute.

$q = "CREATE TABLE IF NOT EXISTS ai_authentication_logs(
		authentication_log_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
		username VARCHAR(30) NOT NULL,
		password VARCHAR(40) NOT NULL,
		server_authentication_date DATETIME NOT NULL,
		client_authentication_date DATETIME NOT NULL,
		ip VARCHAR(30) NOT NULL,
		browser_os VARCHAR(255) NOT NULL,
		screen_resolution VARCHAR(15) NOT NULL,
		status VARCHAR(10) NOT NULL,
		PRIMARY KEY(authentication_log_id))";

mysql_query($q) or die(mysql_error());

Citeste tot articolul »

Post to Twitter Publica acest articol pe Twitter

Publicat de: admin
Ultima modificare: 10, 2010, 15:59
Comentarii: 0
Etichete
Etichete: , , , ,
Categorii: programare
 02 2010 @ 14:56 

Prin ce se caracterizeaza acest formular de inregistrare a utilizatorilor?

  • scriptul PHP isi creeaza singur tabelul in care va stoca utilizatorii daca acesta nu exista in baza de date
  • toate datele introduse sunt validate server-side
  • scriptul verifica in baza de date daca exista deja numele de utilizator ales si adresa de email a noului utilizator
  • fiecare mesaj de eroare este personalizat pentru fiecare eroare in parte
  • campurile care contin date invalide sunt evidentiate
  • scriptul pastreaza datele introduse in campurile formularului atunci cand detecteaza o eroare
  • designul formularului este creat EXCLUSIV din CSS
  • de protectie antispam nu avem nevoie deoarece se presupune ca formularul de inregistrare se afla in interiorul unei sectiuni de administrare

Citeste tot articolul »

Post to Twitter Publica acest articol pe Twitter

Publicat de: admin
Ultima modificare: 10, 2010, 16:00
Comentarii: 1
Etichete
Etichete: , , ,
Categorii: programare