Távolítsuk el korlátozásokat mobilecms és távolítsa szerzői

Nemrég kezdtem a fejlődő többfelhasználós szolgáltatás wap-cms, azaz CMS összpontosított létre mobil oldalakon, de nem követeli meg a tulajdonos minden tudás programozás. Valahogy megoldás a dobozból, mint például a uCoz csak a wap.







Természetesen kísérletképpen úgy döntött, hogy megvizsgálja a kész megoldásokat, keres valami más, mint a jól ismert motorok szar-wap-motor, johnCMS, DCMS. Rábukkantam egy érdekes és fiatal MobileCMS projekt. Persze egyszer érdekes volt nézni a kódot, annál, hogy a leírások ígéretesek voltak: a kód alapján a PFSZ HMVC, web admin felület, modularitás, telepítésére és kezelésére modulokat az admin terület, nyílt forráskódú.

Azt kell mondanom, hogy abban az időben az írás, tanultam MobileCMS v1.5.
Nos Nos, próbáljuk fel / localhost /, és azonnal látni a hibát: „A szerver nincs beállítva ioncube Loader, kapcsolati technikai támogatást a tárhely szolgáltató telepíti a modult.”

Elkészítettük a telepítés, nincs gond. Megpróbáljuk megnyitni a helyszínen, és az a hibaüzenet:
Oldal hiba: a fájl Q: \ home \ localhost \ www \ MobileCMS \ könyvtárak \ template.php igényli ioncube PHP Loader ioncube_loader_win_5.2.dll kell telepíteni a honlap üzemeltetője. Ha Ön a weboldal üzemeltetője használja a ioncube Loader varázslója segítséget a telepítést.
Olyannyira, hogy az, ahol tak..tak szükséges eszközzel ioncube, file „könyvtárak / template.php” kódolva. Miután elolvasta az információt a fejlesztő weboldaláról kiderült, hogy a rendszer fizetett licenc (99wmr :))), amely képes automatikusan eltávolítani MobileCMS szerzői minden oldalon az oldalon. És adatokat olvassa licenszvásárlás azt mondja: „Egy ideje a szerzői jog automatikusan visszahúzza.”. Így a rendszer automatikusan eltávolítja a szerzői regisztrálva van a motor, vagy ami még rosszabb, lehet, hogy script fekete-tanfolyam fejlesztő, amellyel távolról is távolítsa el a szerzői jogi (és nem csak azért, mert így kódolt template.php fájl).

Break a források, és nem talált semmit is társított az engedély, valamint nézi a kód sablonokat footer.tpl nem találja őket a kódot, hol lehetne a sort: „Powered by MobileCMS”, de még mindig ott van.

Valami Kificamodott a történet, egyenesen a lényegre. Ahhoz, hogy indítsa el a CMS kellett még fel egy szerverre, ahol ioncube és látni, mi fog történni az indulás után.
1. megjegyzés megjelenése 2. a mappában lévő fájlok / cache / file_cache /, akkor
/ Cache / file_cache / b / b81755a649ad357a44526821a64432a0
és
/ Cache / file_cache / f / f7c69042a56ced3e29af3ce2a911d68a
A második fájl, ez csak egy sorszámozott tömb egy cache a főoldalon sablont. És ez az első fájl már nagyon érdekes. Nézd, hogy

A legtöbb attentive've valószínűleg már észrevette, hogy itt van egy érték [engedélyezett] => 0, és igen, azt kell mondani, ha lecseréljük a „0” és „1” copyright tűnni, de nem mindig, mert egy idő után (10,800 másodperc = 3 óra), hogy visszaszerezze a fájlt újra és szerzői vissza a helyére. Próbáljuk megoldani ezt a problémát.

Módszer # 2
Minden pontosan ugyanaz, mint az 1. módszer, de ahelyett, hogy beállítása a chmod meg tudjuk változtatni a fájl módosítási ideje. Lehetőség van, hogy a PHP-függvények touch (), mint ez. Így mi üzembe a módosítás a távoli jövőben, azt mondják, a fájl utolsó módosításának az 2099. Miért? Azt mondta, hogy a fájl újra 3 óránként? Tehát 03:00, ezúttal a cache fájl az élet, és megvizsgálja a forrás caching osztály, azt látjuk, hogy a cache megtisztítják adatokon alapul mtime (módosítás ideje) üzembe, hogy a jövőben mi lesz, hogy egy fájlt örökké él a cache.







return false;
>
?>
És mellesleg, bár template.php fájl kódolt tanulhatunk a gomb nevét, amelyre az engedélyt gyorsítása, ez a sor: „license_data”, azaz md5 ( „license_data”) = b81755a649ad357a44526821a64432a0, hogy ki tudjuk tenni a felvezető, kivétel ez, hanem az md5-húr.

funkció parse ($ fájlnév. $ params = array ())
if (! strstr ($ filename ". .tpl))
$ Filename = '.tpl' .;
>

foreach ($ params mint $ var => $ var_value)
$ Ez -> vars [$ var] = $ var_value;
>

if (strpos ($ this -> téma, 'admin') === 0)
$ Alternative_theme = 'admin';
>
más
$ Alternative_theme = 'default';
>

if (.... file_exists (ROOT 'modules /' ROUTE_MODULE '/ views /' $ this - ..> témája '/' $ filename))
$ Ez -> template_file = root. 'Modules /'. ROUTE_MODULE. '/ Views /'. $ Ez -> témát. '/'. $ Filename;
>
más
if (file_exists (ROOT. 'modules /'. ROUTE_MODULE. '/ views /'. $ alternative_theme. '/'. $ filename))
$ Ez -> template_file = root. 'Modules /'. ROUTE_MODULE. '/ Views /'. $ Alternative_theme. '/'. $ Filename;
>
más
if (.. file_exists (ROOT '/ views /' $ this - ..> témája '/' $ filename))
$ Ez -> template_file = root. '/ Views /'. $ Ez -> témát. '/'. $ Filename;
>
más
exit ( „Fájl ”. $ Filename. ' Ez nem egy sablont, vagy nem található. " );
>
>
>

kivonat ($ this -> vars, EXTR_REFS);
ob_start ();
tartalmazzák a $ this -> template_file;
$ PAGE_CONTENT = $ this -> add_code (ob_get_clean ());
return $ PAGE_CONTENT;
>

funkciót kijelző ($ fájlnév. $ params = array ())
echo $ this -> parse ($ filename $ params.);
>

funkció hozzárendelése ($ param1. $ param2 = NULL)
if ((! $ param2 ÉS is_array ($ param1)))
foreach ($ param1 as $ kulcs => $ ertek)
$ Ez -> vars [$ kulcs] = $ ertek;
>

if ($ param2)
$ Ez -> vars [$ param1] = $ param2;
return true;
>

funkció add_code ($ puffer)
if (($ this -!> code_added ÉS strpos ($ this -> téma, 'admin') == 0)!)
if (! class_exists (File_Cache '))
a_import (könyvtárak / file_cache ');
>

if (empty ($ license_data))
$ License_data = array ( 'engedélyezett' => 0 'sablon' => ''. 'License_place' => '”. 'License_code' => '');
$ License_data = serialize ($ license_data);
>

$ File_cache -> set ($ cache_key $ license_data.);
$ License_data = unserialize ($ license_data);
>

if (! $ license_data [ 'engedélyezett'])
ha (strstr ($ puffer. $ license_data [ 'license_place']))
$ Cserélje = str_replace ( ''. $ License_data [ 'license_code'], $ license_data [ 'templát']);
$ Cserélje = str_replace ( '' $ license_data. [ 'License_place'], $ cseréljük);
$ Buffer = str_ireplace ($ license_data [ 'license_place'], $ cserélje $ buffer $ count_added ..);
ha (0 <$count_added )
$ Ez -> code_added = 1;
>
>
>
más
$ Ez -> code_added = 1;
>
>

A módszer eltávolítása a szerzői jog, és szerkeszti eljárás add_code (). de utasításokat a művelet már nem vezet, mint Nem nehéz megérteni, és önmagát.

FRISSÍTVE. Reflections.
Lehet paranoiás vagyok persze, majd írok az alábbiakban képtelenség, de a tények nem adnak nem tudok. Ha megpróbálja elemezni ezt a CMS engedélyezési rendszert, akkor ki fog derülni, hogy a fejlesztő lehet építeni bármilyen kódot minden oldalát a helyszínen, hogy azt használja. Mi az előnye is lehet?

Először. Akkor beágyaz egy rosszindulatú Java script, akkor nagyon nagy repülési fantasy (átirányító Cook szippantás, Trojan-rakodó).

1. Sok vezérlők zárva lesz a védelem javítása? Védelem Zend vagy ioncube dekóder, amely eltávolítható 15 másodperc alatt tetszőleges számú fájlt. Ezt bizonyítják a példa template.php
2. Sites eltávolításra kerül megsértése miatt az engedélyt. Igen, 7. pontját az önálló eltávolítása szerzői törjük, ez csak nem a szó maga mobilecms bármilyen megállapodás, nincs jogi ereje, tekintettel arra, hogy sehol nem vennénk megállapodásokat. És az, hogy a leghülyébb tárhelyszolgáltatóval eltávolításához hely (amely összehozza neki pénzt (szolgáltatónál)) csak azért, mert mobilecms fejlesztő sírni, hogy valaki kivette a copyright = D. És mi nem folt, és nem módosítja a forráskódját a forgatókönyvet, csak tegye CHMOD ahol ez szükséges, és a trükk;)
3. Személyi veszélyt rám? Hízelgő)) irányíthatja most elindítani DDoS én blozhek, és vállalom, hogy tegye közzé itt a dekódolt változatát MobileCMS óta 1.5.