Togliere lo spam nascosto in Artio JoomSef |
30-04-2008 05:00
Si sa ormai da tempo che uno dei componenti più usati per la riscrittura delle url in Joomla 1.0 contiene al suo interno link nascosti, che possono essere rimossi acquistando la versione a pagamento.
Questo comportamento non è stato visto di buon occhio da molti utenti, che hanno cominciato ad utilizzare altri componenti.
Nonostante ci siano altri ottimi componenti, Artio rimane una valida scelta e offre una compatibilità con tutte le estensioni più utilizzate.
Il sito di artio riporta:
Free JoomSEF (with sponsor links) and free plugins
- you are ALLOWED to copy and distribute it freely
- you are ALLOWED to use it on as many servers and domains as you need
- you are ALLOWED to do modifications to code for your own needs
- you are NOT ALLOWED to distribute customized versions without ARTIO approval
Le condizioni non ci obbligano quindi a tenere lo spam nel nostro sito. Se vogliamo possiamo rimuoverlo manualmente, a patto che non ridistribuiamo installazioni automatiche di versioni modificate.
Premesse
Questo articolo è stato scritto a puro scopo dimostrativo, tenendo in considerazione la versione 2.2.6 di JoomSef.
L'autore non si assume nessuna responsabilità da eventuali malfunzionamenti causati da modifiche ai componenti del vostro sito e da un cattivo uso delle informazioni divulgate.
Alla ricerca dei links
Apriamo il seguente file del nostro sito joomla: "administrator/components/com_sef/sef.class.php";
alla riga 385 dovremmo trovare questo codice:
eval(base64_decode('JHNlZkRpckFkbWluID0gJEdMT0JBTFNbJ21vc0NvbmZpZ19hYnNvbHV0ZV9wYXRoJ10gLiAnL2FkbWluaXN0cmF0b3IvY29tcG9uZW50cy9jb21fc2VmLyc7Ci8vIGxvYWQgY2hlY2tzdW1zCiRsaWNlbnNlID0gdHJpbShAZmlsZV9nZXRfY29udGVudHMoJHNlZkRpckFkbWluIC4gJ3NpZ25hdHVyZS5iNjQnKSk7CiRjaGVja3N1bSA9IHRyaW0oQGZpbGVfZ2V0X2NvbnRlbnRzKCRzZWZEaXJBZG1pbiAuICdjaGVja3N1bS5tZDUnKSk7CiRjaGVja3N0ciA9ICcnOwpnbG9iYWwgJHNlZkNoZWNrQTsKJHNlZkNoZWNrQVszXSA9ICRzZWZDaGVja0FbMl0gPSAkc2VmQ2hlY2tBWzFdID0gJHNlZkNoZWNrQVswXSA9ICcnOwokc2VmQ2hlY2tBID0gZXhwbG9kZSgnLScsICRsaWNlbnNlKTsKZm9yZWFjaCAoJHNlZkNoZWNrQSBhcyAkaWQgPT4gJGNoZWNrcGFydCkgewokc2VmQ2hlY2tBWyRpZF0gPSBiYXNlNjRfZGVjb2RlKCRjaGVja3BhcnQpOwokY2hlY2tzdHIgLj0gJHNlZkNoZWNrQVskaWRdOwp9ICAgICAgICAkdGhpcy0+ZW5hYmxlZCAmPSAoJGNoZWNrc3VtID09IG1kNSgkY2hlY2tzdHIpKTsKLy8gYXV0dW1uIGFkanVzdG1lbnQKaWYgKCR0aGlzLT5lbmFibGVkKSB7CiRkb21haW4gPSBzdWJzdHIoJF9TRVJWRVJbJ0hUVFBfSE9TVCddLCBzdHJycG9zKCRfU0VSVkVSWydIVFRQX0hPU1QnXSwgJy4nKSArIDEpOwovKnN3aXRjaCAoJGRvbWFpbikgewpjYXNlICdjeic6CmNhc2UgJ3NrJzoKJHR4dCA9ICdTZXJ2ZXIgSG91c2luZywgU2VydmVyIGhvdXNpbmcgVlBTLCBTZXJ2ZXJob3VzaW5nLCBTZXJ2ZXJob3N0aW5nJzsKJHVybCA9ICdodHRwOi8vd3d3LmNvb2xob3VzaW5nLm5ldC9jei5odG1sJzsKYnJlYWs7CmNhc2UgJ3BsJzoKJHR4dCA9ICdLb2xva2FjamEsIEtvbG9rYWNqYSBTZXJ3ZXIsIE1hbmFnZWQgRGVkeWtvd2FueSBTZXJ3ZXIsIFZQUyBzZXJ3ZXJ5IGRlZHlrb3dhbmUnOwokdXJsID0gJ2h0dHA6Ly93d3cuY29vbGhvdXNpbmcubmV0L3BsLmh0bWwnOwpicmVhazsKY2FzZSAnZGUnOgokdHh0ID0gJ0NvbG9jYXRpb24sIERlZGl6aWVydGUgTWFuYWdlZCBTZXJ2ZXJzLCBQcml2YXRlIFJvb3QgVmlydHVlbGxlIFNlcnZlcic7CiR1cmwgPSAnaHR0cDovL3d3dy5jb29saG91c2luZy5uZXQvZGUuaHRtbCc7CmJyZWFrOwpjYXNlICdubCc6CiR0eHQgPSAnQ29sb2NhdGllLCBDby1Mb2NhdGllLCBDby1Mb2NhdGlvbiwgTWFuYWdlZCBEZWRpY2F0ZWQgU2VydmVyLCBWUFMgUHJpdmF0ZVNlcnZlcic7CiR1cmwgPSAnaHR0cDovL3d3dy5jb29saG91c2luZy5uZXQvbmwuaHRtbCc7CmJyZWFrOwpjYXNlICd1ayc6CiR0eHQgPSAnU2VydmVyIFJhY2sgQ29sb2NhdGlvbiwgVlBTIHZpcnR1YWwgcHJpdmF0ZSBzZXJ2ZXInOwokdXJsID0gJ2h0dHA6Ly93d3cuY29vbGhvdXNpbmcubmV0L3VrLmh0bWwnOwpicmVhazsKY2FzZSAnYXUnOgokdHh0ID0gJ1ByYWd1ZSBBcGFydG1lbnRzJzsKJHVybCA9ICdodHRwOi8vd3d3LnRyYXZlbGlhbmEuY29tL3ByYWd1ZS1hcGFydG1lbnRzLXRvLXJlbnQuaHRtbCc7CmJyZWFrOwpjYXNlICdubyc6CmNhc2UgJ3NlJzoKJHR4dCA9ICdQcmFoYSBIb3RlbHMsIFByYWd1ZSBIb3RlbHMsIFByYWd1ZSBBcGFydG1lbnRzJzsKJHVybCA9ICdodHRwOi8vd3d3LnRyYXZlbGlhbmEuY29tL3ByYWd1ZS1ob3RlbHMtYXBhcnRtZW50cy5odG1sJzsKYnJlYWs7CmRlZmF1bHQ6CiR0eHQgPSBudWxsOwp9Ki8KaWYgKCFpc19udWxsKCR0eHQpKSB7Ci8qJHR4dDEgPSAnSm9vbVNFRiBTRU8gYnkgQXJ0aW8gKGh0dHA6Ly93d3cuYXJ0aW8ubmV0KSAtIGRhdGFiYXNlcywgaW5mb3JtYXRpb24gc3lzdGVtIGFuZCB3ZWIgYXBwbGljYXRpb25zJzsKJHR4dDIgPSAnPGJyIC8+PHNwYW4+Sm9vbVNFRiBTRU8gYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcnRpby5uZXQiIHRpdGxlPSJkYXRhYmFzZXMsIGluZm9ybWF0aW9uIHN5c3RlbXMgYW5kIHdlYiBhcHBsaWNhdGlvbnMiPkFydGlvPC9hPic7Ci8vIG90aGVyIHBhZ2UgZm9vdGVyCiRzZWZDaGVja0FbMl0gPSAnPGJyIC8+PHNwYW4+Sm9vbVNFRiBTRU8gYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5hcnRpby5uZXQiIHRpdGxlPSJkYXRhYmFzZXMsIGluZm9ybWF0aW9uIHN5c3RlbXMgYW5kIHdlYiBhcHBsaWNhdGlvbnMiPkFydGlvPC9hPi48L3NwYW4+JzsKLy8gb3RoZXIgcGFnZSBtZXRhCiRzZWZDaGVja0FbM10gPSAnIEpvb21TRUYgU0VPIGJ5IEFydGlvIChodHRwOi8vd3d3LmFydGlvLm5ldCkgLSBkYXRhYmFzZXMsIGluZm9ybWF0aW9uIHN5c3RlbSBhbmQgd2ViIGFwcGxpY2F0aW9ucyc7CiovCi8qJGtleSA9ICdDb29saG91c2luZyAtICcucmVzZXQoZXhwbG9kZSgnLCAnLCAkdHh0KSk7CiRzZWZDaGVja0FbMV0gPSAkdHh0MS4nICYgJy4kdXJsLicgLSAnLiR0eHQ7CiRzZWZDaGVja0FbMF0gPSAkdHh0Mi4nICZhbXA7IDxhIGhyZWY9IicuJHVybC4nIiB0aXRsZT0iJy4kdHh0LiciPicuJGtleS4nPC9hPi48L3NwYW4+JzsKKi8KfQp9Ci8vIGF1dHVtbiBhZGp1c3RtZW50IGVuZApmdW5jdGlvbiB4bWxQYXJzaW5nICgkcGF0aCwgJGJhc2UsICRpbmRleCwgJG9wdGlvbikKewpnbG9iYWwgJF9WRVJTSU9OLCAkc2VmQ2hlY2tBOwppZiAoKCRwYXRoID09ICRiYXNlKSB8fCAoJHBhdGggPT0gKCRiYXNlIC4gJGluZGV4KSkgfHwgKEAkb3B0aW9uID09ICdjb21fZnJvbnRwYWdlJykpIHsKLy8gZnJvbnRwYWdlIGNvZGUKJF9WRVJTSU9OLT5VUkwgLj0gJHNlZkNoZWNrQVswXTsKJF9WRVJTSU9OLT5DT1BZUklHSFQgLj0gJHNlZkNoZWNrQVsxXTsKfSBlbHNlIHsKLy8gb3RoZXIgcGFnZSBjb2RlCiRfVkVSU0lPTi0+VVJMIC49ICRzZWZDaGVja0FbMl07CiRfVkVSU0lPTi0+Q09QWVJJR0hUIC49ICRzZWZDaGVja0FbM107Cn0KfQpmdW5jdGlvbiBpbmNsdWRlU2VmICgkb25jZSA9IGZhbHNlKQp7Cmdsb2JhbCAkbW9zQ29uZmlnX2Fic29sdXRlX3BhdGgsICRzZWZDaGVja0E7CnN0YXRpYyAkZmlyc3QgPSB0cnVlOwppZiAoJG9uY2UgJiYgISAkZmlyc3QpCnJldHVybjsKJHR4dCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRtb3NDb25maWdfYWJzb2x1dGVfcGF0aCAuICcvY29tcG9uZW50cy9jb21fc2VmL3NlZl9leHQucGhwJyk7CmlmIChzdWJzdHIoJHR4dCwgMCwgNSkgIT0gJzw/cGhwJykgewokdHh0ID0gYmFzZTY0X2VuY29kZSgkdHh0KTsKJHR4dCA9ICRzZWZDaGVja0FbNF0gLiAkdHh0OwokZGV0eHQgPSBiYXNlNjRfZGVjb2RlKCR0eHQpOwokZGV0eHQgPSBzdWJzdHIoJGRldHh0LCAyLCAtIDIpOwpldmFsKCRkZXR4dCk7Cn0gZWxzZSB7CmlmICgkb25jZSkgewppbmNsdWRlX29uY2UgKCRtb3NDb25maWdfYWJzb2x1dGVfcGF0aCAuICcvY29tcG9uZW50cy9jb21fc2VmL3NlZl9leHQucGhwJyk7Cn0gZWxzZSB7CmluY2x1ZGUgKCRtb3NDb25maWdfYWJzb2x1dGVfcGF0aCAuICcvY29tcG9uZW50cy9jb21fc2VmL3NlZl9leHQucGhwJyk7Cn0KfQokZmlyc3QgPSBmYWxzZTsKfQ=='));
Questo codice è codificato in base64, e contiene al suo interno molte istruzioni, alcune delle quali sono indispensabili per il funzionamento di Artio altre invece contengono operazioni di controllo e codificazioni, decodificazioni e molte altre istruzioni abbastanza difficili da comprendere, tra cui la lettura a un file, "signature.b64" che se decodificato visualizza (al posto dei link ho messo dei grassetti):
JoomSEF SEO by Artio. Remove this text by getting registered version.
JoomSEF SEO by Artio. Remove this text by getting registered version. JoomSEF SEO by Artio (http://www.artio.net) - databases, information system and web applications.
Per tenere solo le istruzioni che servono al funzionamento di Artio JoomSef quindi commentiamo la riga 385, e aggiungiamo dopo di essa questo codice (che non è altro che lo stesso codice ripuilto e reso innocuo):
$sefDirAdmin = $GLOBALS['mosConfig_absolute_path'] . '/administrator/components/com_sef/'; // load checksums $license = trim(@ file_get_contents($sefDirAdmin . 'signature.b64')); $checksum = trim(@ file_get_contents($sefDirAdmin . 'checksum.md5')); function xmlParsing($path, $base, $index, $option) { global $_VERSION, $sefCheckA; if (($path == $base) || ($path == ($base . $index)) || (@ $option == 'com_frontpage')) { // frontpage code $_VERSION->URL .= $sefCheckA[0]; $_VERSION->COPYRIGHT .= $sefCheckA[1]; } else { // other page code $_VERSION->URL .= $sefCheckA[2]; $_VERSION->COPYRIGHT .= $sefCheckA[3]; } } function includeSef ($once = false) { global $mosConfig_absolute_path, $sefCheckA; static $first = true; if ($once && ! $first) return; $txt = file_get_contents($mosConfig_absolute_path . '/components/com_sef/sef_ext.php'); if (substr($txt, 0, 5) != '<?php') { $txt = base64_encode($txt); $txt = $sefCheckA[4] . $txt; $detxt = base64_decode($txt); $detxt = substr($detxt, 2, - 2); eval($detxt); } else { if ($once) { include_once ($mosConfig_absolute_path . '/components/com_sef/sef_ext.php'); } else { include ($mosConfig_absolute_path . '/components/com_sef/sef_ext.php'); } } $first = false; }
Dopodichè salviamo e testiamo il nostro sito in locale, se non notate alcuna differenza è andato tutto bene.
Conclusione
Non è l'unico caso in cui vengono utilizzati questi piccoli trucchi, e a mio avviso non c'è niente di cui scandalizzarsi: ci sono molte persone che utilizzano codice open source per i propri lavori, e fin qui non c'è niente di male, ma coloro che non ricambiano, che tolgono i riferimenti agli autori, che distribuiscono codice open source spacciandolo per proprio a volte anche a pagamento stimolano gli sviluppatori a compiere queste azioni.
Se chi utilizza codice open source fosse più propenso a ringraziare gli autori per il loro codice, gli sviluppatori non avrebbero bisogno di questi trucchetti per avere un minimo di ritorno dal proprio lavoro.
Certo è che utilizzando questo tipo di mezzi si passa dalla parte del torto.
Commenti utenti
Visualizza 10 di 10 commenti
Aggiungi il tuo commento
| ‹ Precedente | Successivo › |
|---|















Alternativa
Vorrei solo dire che si può avere lo stesso risultato anche modificando la pagina joomla/includes/footer.php togliendo semplicemente
questa stringa URL; ?>
fermo restando che sarebbe buono mettere una pagina del proprio sito con i link diretti in HTML ai siti degli sviluppatori che ci offrono il loro lavoro a GRATIS!
Lo meritano senza alcuna riserva, come potete vedere dal mio sito vostroportale.it
Scritto da: angelcs (Membro) 11-05-2008 20:26