A fórummotor automatikus felismerése. A fórummotor automatikus felismerése Fájl index php tábla

Kezdjük rögtön a fő szkript kóddal:

#!/usr/bin/perl

# which-forum.pl szkript
# (c) 2010 Alexandr A Alexeev, http://webhely/

szigorúan használjon;

# kommentált sor – a szigorúság kedvéért
# ha a motorstatisztikák gyűjtése a feladat, hagyja úgy, ahogy van
# ha készít egy listát a fórumokról - törölje a megjegyzéseket

az én $adataim ;
$adat .= $_ while (<> ) ;

# ellenőrizze, hogy hányat működtetett a phpBB lábléc hivatkozás nélkül
nyomtatja ki a "phpbb \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?[^>]*>phpBB/i vagy
# $data =~ /viewforum\.php\?[^""]*f=\d+/i vagy
$adat =~ /phpBB\-SEO/i vagy
$adat =~ /) ;
nyomtatja ki az "ipb \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i vagy
$adat =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?[^>]*>Invision Power Board/i vagy
$adat =~ /

/én vagy
$adat =~ /index\.php\?[^""]*showforum=\d+/i) ;
print "vbulletin \n"
if ($adat =~ /Támogatja:?[^<]+vBulletin[^<]+(?:Version)?/i vagy
$adat =~ /) ;
print "smf \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?[^>]*>Támogatja az SMF/i vagy
$adat =~ /index\.php\?[^""]*board=\d+\.0/i) ;
print "punbb \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i) ; #vagy
# $data =~ /viewforum\.php\?[^""]*id=\d+/i);
print "fluxbb \n"
# if($data =~ /viewtopic\.php\?id=\d+/i vagy
if ( $adat =~ /]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i) ;
print "exbb \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?[^>]*>ExBB/i) ; # vagy
# $adat =~ /fórumok\.php\?[^""]*fórum=\d+/i);
print "yabb \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?[^>]*>YaBB/i vagy
$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ;
print "dleforum \n"
if ($adat =~ /\(Támogatja a DLE fórum\)<\/title>/én vagy
$adat =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">DLE fórum<\/a>/én) ;
print "ikontábla \n"
if ($adat =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i vagy
$adat =~ /\n"
if ($adat =~ /\n"
# if($data =~ /fórumok\.php\?fid=\d+/i vagy
# $data =~ /topic\.php\?fid=\d+/i vagy
if ($adat =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i) ;
print "stokesit \n"
# if($data =~ /fórum\.php\?f=\d+/i vagy
if ($adat =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i) ;
print "pódium \n"
# if($data =~ /topic\.php\?t=\d+/i vagy
if ($adat =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Pódium/i) ;
print "usebb \n"
# if($data =~ /fórum\.php\?id=\d+/i vagy
if ($adat =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>BB/i használata) ;
print "wrforum \n"
# if($data =~ /index\.php\?fid=\d+/i vagy
if ($adat =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i) ;
print "még egy másik fórum \n"
if ($data =~ /Még egy fórum\.net/i vagy
$adat =~ /default\.aspx\?g=posts&t=\d+/i) ;

Ez és más, a bejegyzésben említett szkriptek megtalálhatók ebben az archívumban.

Forgatókönyv melyik-fórum.pl megvizsgálja a html-oldal kódját, hogy vannak-e benne fórummotor-aláírások. Hasonló technikát alkalmaztunk a WordPress és a Joomla meghatározásakor is, de van néhány különbség. Először is, maga a szkript nem tölti be az oldal kódját, hanem beolvassa az stdin-ből vagy egy argumentumként átadott fájlból. Ez lehetővé teszi, hogy egyszer letöltsük az oldalt, például a wget segítségével, majd több elemzőn keresztül lefuttatjuk, ha több is van. Másodszor, ebben a szkriptben az aláírás jelenléte a motor 100%-os jele. Legutóbb az aláírás jelenléte csak a megfelelő motornak adott súlyt, és a legnagyobb tömegű motort „nyerte meg”. Úgy döntöttem, hogy ebben az esetben egy ilyen megközelítés csak szükségtelenül bonyolítja a kódot.

A forgatókönyv teszteléséhez végeztem egy kis kutatást. Összeállítottam egy több ezer fórumot tartalmazó listát, és mindegyiket végigfutottam a szkriptemen, így meghatározva a programok aktiválásának százalékos arányát és a különféle motorok népszerűségét.

A fórumok listájának lekéréséhez a Google elemzőmet használtam. keresőmotor hasonló kéréseket küldeni

site:forum.*.ru
site:talk.*.ru
site:board.*.ru
site:smf.*.ru
site:phpbb.*.ru
....

stb. Teljes kód lekérdezésgenerátort, amelyet a fájlban talál gen-forumsearch-urls.pl. A .ru zónán kívül .su .ua .kz és .by is használatos volt. Legutóbb nehéz volt egy ilyen vizsgálatot lefolytatni, mivel a WordPress és a Joomla webhelyek URL-jében nincsenek ilyen aláírások. Az olyan katalógusok, mint a cmsmagazine.ru/catalogue/, nem biztosítanak megfelelő mintaméretet. Mi az a 600 webhely a Drupalon?

Be kell vallanom, hogy a kísérlet eredménye csalódást okozott. A 12 590 vizsgált helyszín közül csak 7 083 motort sikerült azonosítani, vagyis csak az esetek 56%-ában. Lehet, hogy nem vettem figyelembe néhány motort? Bitrix a fórumok felén állt? Vagy több időt kellett volna töltenem az aláírások keresésével? Általánosságban elmondható, hogy itt több kutatásra van szükség.

A sikeresen azonosított motorok 56%-a közül a várakozásoknak megfelelően az IPB (31%), a phpBB (26,6%) és a vBulletin (26,5%) volt a legnépszerűbb.

Őket szorosan követi az SMF (5,8%) és a DLEForum (5,3%). Kedvenc punBB-m csak a 6. helyen végzett (1,64%). Nem javaslom erősen bízni ezekben a számokban (azt mondják, hogy a Runet minden harmadik fóruma IPB-n működik), de bizonyos következtetéseket természetesen le lehet vonni.

Például, ha webhelyet kíván létrehozni egy fórummotoron, és módosítani kívánja a fórumot, mondjuk 0,01 USD-t fizet a felhasználóknak minden üzenetért hetente egyszeri automatikus pénzfelvétellel, akkor válassza ki a három legnépszerűbb motor egyikét. . Minél népszerűbb a fórum, annál valószínűbb, hogy talál egy programozót, aki jártas ebben.

Ha nem várható jelentős változás a motorban, akkor érdemes lehet kevésbé népszerű motort választani, például SMF vagy punBB. Ezzel csökkenti a fórumot érő hackertámadások számát és az arra automatikusan küldött spam mennyiségét.

A fórumok keresésére/meghatározására szolgáló szkriptek is találhatnak egynél többet gyakorlati használat. Az első dolog, ami személy szerint eszembe jutott, az volt, hogy a beazonosított fórumokat TCI szerint rendezem, és az egyik oldalukra mutató hivatkozásokat tartalmazó bejegyzéseket az első száz közé helyeztem. A száz fórum dofollow linkje azonban semmilyen módon nem érintette a TIC-et (2 frissítés telt el), ezért jobb, ha nem vesztegeti az időt itt, hacsak nem érdekel az átállás.

Nyilvánvaló, hogy a szkriptek név szerinti használata korántsem az egyetlen. Szerintem könnyen kitalálhatod, hogyan használhatod még őket.

Bizonyos moduloknak kommunikálniuk kell a hardverrel, hogy teljesítsék feladataikat. Ezek a modulok egy további illesztőprogram-réteggel rendelkeznek. Ezután minden illesztőprogramnak szüksége van egy táblafájlra, hogy beszéljen a tényleges hardverrel.
A táblafájlt a felhasználónak kell megadnia, mivel annak megvalósítása nemcsak a használt mögöttes rendszertől (HAL), hanem a tényleges hardverkonfigurációtól (vezetékezéstől) is függ.

Sablonok

Minden illesztőprogram tartalmaz egy sablont a saját táblafájljához. Csak annyi a teendő, hogy ezt a fájlt a projekt könyvtárába másolja, és végrehajtja a rutinokat. Vegye figyelembe, hogy el kell távolítania a _template részt a fájlnévből.

Támogatott táblák

Néhány táblán előre meghatározott hardver található. Ahol ezek egy közös tábla, biztosítunk egy makefile-t ( /boards/base/xxx/board.mk), amelyet beilleszthet a saját projekt makefile-jába. Ez ezután automatikusan tartalmazza az összes szabványos hardver-illesztőprogramot és táblafájlt. További előre definiált táblafájlok is megtalálhatók a /boards/addons.


Az index.php fájl a fórum kulcsfájlja, és szinte minden művelethez használják. Munkája a következő lépésekből áll:
1) Csatlakozás konfigurációs fájlok adatbázis.php és iboard.php.
2) Kapcsolat létrehozása a DBMS-szel és hozzáférés az adatbázishoz.
3) Információk olvasása innen felhasználói cookie-k vagy a szkriptnek átadott paraméterekből, kinyerve az adatbázisból a felhasználóra vonatkozó információkat, és ellenőrizve a hitelességét.
4) Sikertelen ellenőrzés (vagy a felhasználóval kapcsolatos információk hiánya) esetén a Vendég felhasználói profilhoz tartozó adatok felhasználói adatként kerülnek lekérésre ( regisztrációs szám - 1).
5) Stílusfájlok és felületi nyelv összekapcsolása, felhasználó által meghatározott a profil beállításaiban.
6)Ha a t paraméter szerepel a szkripthívás paramétereiben, akkor a megadott témával és fórummal kapcsolatos adatok az adatbázisból kerülnek lekérésre, amelyben ez a téma található.
7)Ha a szkripthívás paraméterei között szerepel az f paraméter, akkor a fórumra vonatkozó adatok lekérésre kerülnek az adatbázisból.
8) Ha a t vagy f paraméterek jelen vannak, akkor a rendszer ellenőrzi, hogy a felhasználónak van-e elegendő jogosultsága a megfelelő fórum megtekintéséhez.
9) Az m paraméterben megadott modul csatlakoztatása folyamatban van. Ha az m paraméter hiányzik, akkor a modul típusát a rendszer a partíció típusától függően határozza meg, amelyhez a ezt az akciót. Ha a partíció típusa nincs megadva, akkor a rendszer ellenőrzi, hogy miként jelenjen meg kezdőlap. Abban az esetben, ha az egyik szakaszt főoldalként választják ki, akkor a megfelelő típusú szakasz megjelenítéséért felelős modul csatlakozik, ellenkező esetben a main.php modul. Tartalmaz egy stílusfájlt is, amelynek neve megegyezik a beépülő moduléval, de a stílusok könyvtárának a felhasználói profil beállításaiban kiválasztott stílusnak megfelelő alkönyvtárában található.
10) Az a paramétert ellenőriztük. Ha nincs kifejezetten beállítva, akkor egyenlőnek lesz nyilvánítva a megtekintéssel. Továbbá, ha egy adott szakasz meg van adva, és az a paraméter megegyezik a nézet értékkel, akkor a helyére kerül<имя_раздела>_Kilátás.
11) A kért művelettől függően (az a szkripthívás paraméterben van megadva) vagy a tmplate1.php fájl (ha a művelet nem tartalmazza a do_ előtagot), vagy a tmplate2.php fájl (egyébként) kapcsolódik. Ezután a megfelelő sablonban felsorolt ​​összes művelet meghívásra kerül, és a main_action művelet helyett az a paraméterben megadott művelet lesz ténylegesen meghívva.
12) A fórumnapló információkat tartalmaz az elvégzett műveletről, a műveletet végrehajtó felhasználó azonosítóját és IP címét.
Az index.php fájlban is található a fatális hibák kezelésére szolgáló funkció, amely hibaüzenet megjelenítésére, valamint az error.log fájl hibaszövegének javítására szolgál.

Betöltés...
Top