CryptoLocker – protejarea lui Windows 7 prin Software Restriction Policy

Acum aproximativ o lună a apărut un ransomware nou și îngrijorător de eficient pe numele lui- Cryptolocker. Dacă nu știți ce este un ransomware vă invit să vă informați de pe wikipedia.

Există de asemenea un post pe Reddit foarte activ cu noutăți zilnice despre ”infecție”, iar mai jos am pregătit un tutorial video care vă arată cum puteți seta pe Windows 7 (aplicabil și la Vista cu mici diferențe) politica de restricție software care vă poate proteja de CryptoLocker.

Ca o notă în primul rând, pentru a vă proteja, ar trebui să aveți un antivirus instalat și actualizat la zi, recomandarea mea este BitDefender sau Avast!, și desigur un backup al datelor voastre importante undeva off-site.

 

Pentru backup cel mai la îndemână e Windows Backup, desigur pe un disc extern sau un NAS.

Cel mai simplu mod de a înțelege diferența dintre i++ și ++i

Pe principiul ”omul din greșeli învață”, am să vă propun azi să înțelegem diferența dintre expresia i++ și ++i . Sunt sigur că i++ e nelipsit din utilizarea zilnică și așa devine oarecum expresia de facto pentru a incrementa o variabilă, dar în același timp suntem ”păcăliți” să credem că este echivalentă cu i+1.

Exemplele de mai jos sunt în PHP, însă le puteți adapta foarte ușor la alte limbaje, eliminând în principiu $ din fața numelor variabilelor.

Dacă rulăm următorul cod:

Vom vedea pe ecran: a=0 iar b=2; Ceea ce nu prea are sens nu? De fapt b=2 oarecum e corect deoarece, am pus de două ori ++ pe lîngă i și deci a fost incrementat de două ori.

Hai să mai luăm un caz, o funcție recursivă:

Dacă executăm codul de mai sus, o să observăm că rulează la ifinit, și afișează în continuu ”Sunt la iteratia 1 din 100”. Se pare că în acest caz simbolul local al funcției $i, nu se incrementează. Dar dacă schimbăm codul astfel:

De această dată funcția va rula de 100 de ori.

Deci diferența dintre i++ și ++i e că expresia i++ incrementează valoarea lui i și returnează valoarea ne-incrementată pe când expresia ++i incrementează valoarea lui i și returnează valoarea incrementată.

Clasă whois în php

Clasa are metode pentru a trimite o cerere către un server de whois și verifică rezultatul. Metoda check() returnează true/false dacă string-ul răspuns căutat se găsește în stringul rezultat de la serverul whois. Serverul de whois este configurat automat, la fel și răspunsul dacă TLD-ul este definit în variabila $whoisServers .

Exemple de utilizare:

Verifică dacă serverul whois “whois.eu” returnează string-ul ”AVAILABLE”.

Download class.domaincheck.zip

Găsește adresa gazdei (host-ul) curente cu javascript

Nu de puține ori s-a întâmplat să am  nevoie, într-un fișier sursă JavaScript, de adresa/domeniul pe care se găsește script-ul pentru a înlocui diferite variabile: calea către o imagine, statistici, etc.

Prima opțiune de rezolvare a problemei este destul de simplă și presupune înlocuirea unei variabile JavaScript din PHP. De exemplu:

Unde $_HOST este o variabilă generată din PHP pentru stabilirea host-ului. Dar, dacă fișierul js este static, și deci nu putem executa cod decât pe client, trebuie să apelăm la variabila window, mai exact la window.location.href. Codul de mai jos creează o variabilă globală, _WWW_HOST reprezentând adresa gazdei pe care rulează script-ul. De asemea, protocolul este extras separat, pentru a detecta dacă rulează sub HTTP sau HTTPS:

Funcția get_abspath() poate fi folosită și pentru a afla calea absoultă a unei resurse, trimițând ca parametru calea relativă.
Pentru a downloada scriptul dați click-dreapta și “Save link as…” .

download

Cum afli calea relativă către directorul temei de wordpress

Dacă v-ați jucat mai mult prin wordpress, și eventual ați avut de făcut pagini separate de wordpress (e.g. inbox-uri sau forumuri) în care să folosiți headerul, footerul sau/și sidebar-ul din tema de wordpress , cu siguranță că ați observat că, deși ați inclus fișierul wp-load.php,  funcția  get_template_part() nu mai funcționează. Rolul funcției este de a include în template anumite fișiere pe baza unor filtre. Și, findcă se bazează pe funcția php include, nu va funcționa corect decât într-un fișier localizat în directorul temei.

Dacă vrei să incluzi loop.php și pe noua pagină – trebuie găsită o soluție mai eficace.
Wordpress îți oferă o constantă, care indică exact calea absolută, pe server, către directorul temei. De exemplu pentru tema redline aceasta va fi ceva de genul ”/var/www/myblog.info/wp-content/themes/redline”. Arată bine, însă, pentru a ne putea include un fișier de acolo, cu include sau include_once, preferabilă ar fi o cale relativă către acest director. Asta se poate obține foarte ușor cu doar două linii de cod:

 

 

Prima dată includem wp-load.php, și după cum puteți observa fișierul  meu extern ce urmează să folosească tema de wordpress se află chiar în directorul rădăcină al wordpress. Definim variabila $template_path pentru a reține calea relativă de la directorul rădacină al WordPress la directorului temei curente. Apoi selectăm post-urile din categoria cu id-ul variabilei $categoryId (transmisă prin GET), pentru a fi afișate.
Mai jos utilizăm noua variabilă pentru a include fișiere specifice temei:

 

Dacă fișierul nu se află în directorul rădăcină al WordPress, mai avem de făcut un lucru, pentru a simplifica lucrurile, putem să definim o constantă care va reține valoarea returnată de script-ul de mai sus, din $template_path, (e.g. WP_TEMPLATE_PATH). Vom lăsa script-ul rezultat în fișierul rădăcină al WordPress și îl includem în fișierul nostru. Apoi rămân de adăugat ”../”, în fața WP_TEMPLATE_PATH,  în funcție de adâncimea direcrotului cu script-ul nostru.