Navigacija

Vartotojų tinkle

Prisijungusių svečių: 750
Prisijungusių narių: 0
Prisijungusių narių nėra

Registruoti nariai: 25,956
Naujausias narys: saulyzas

Naujausi straipsniai

Paskutiniai nariai

saulyzas 2 dienos
MaFetas 4 dienos
TOMIJUS 1 savaitė
ozzWANTED 1 savaitė
Reikalas10 savaitės
Jaunelis16 savaitės
lanis17 savaitės
And2s17 savaitės
Memento Mori22 savaitės
Quwqkibor25 savaitės
asirija29 savaitės
tomeem31 savaitės
weberiz34 savaitės
mRokass36 savaitės
kartoonas37 savaitės
grunskiz40 savaitės
Bruksnys41 savaitės
illusion41 savaitės
ordo42 savaitės
Jurgaila42 savaitės

Informacija:


OS: Unknown
Naršyklė: Nežinoma
IP: 3.149.233.221
Naujienų: 529
Straipsnių: 235
Temų: 52,588
Postų: 522,537
Postų pask. parą: 0
Shout'ų pask. parą: 0
P.S.C. pask. parą: 0
Nuorodų kataloge: 13

Lankomumo Statistika

Peržiūrų šiandien: 22

Iš viso peržiūrų: 22948724

Prisijungti

REGISTRUOTIS
Nario vardas

Slaptažodis



Pamiršai slaptažodį?
Paprašyk naujo

Aktyvuoti save

Šaukykla

Jei norite rašyti žinutes, turite prisijungti.

MaFetas
2024 Lap. 13 22:11:57
hey how, geras dar veikiantis saitas?

Jaunelis
2024 Lie. 25 11:07:43
Oho vis dar veikia svetainė akinanti šypsen Šimtas metų, matau Šaukykloje nuostalgija. Smagu panaršyt po forumą ir pažiūrėt senas temas šypsosi

And2s
2024 Lie. 17 19:07:04
2008 pirmą kart čia patekau, man buvo 10m ir čia pramokau programavimo.. smagu skaityti senas žinutes, tokia nostalgija akinanti šypsen ačiū Ozz kad saugoji šitą kultūrinį reliktą šypsosi

ozzWANTED
2024 Sau. 17 01:01:00
Desperatiškus komentarus šaukykloje su accountu po mėnesio prasibuvimo, ištryniau. Pasaulis ir taip juodas. Įjungiam šviesą, prašviesės. šypsosi

Majakas
2023 Gru. 10 19:12:39
Negaliu patikėti jog žinutės/pranešimai visi yra nuo 2008 m akinanti šypsen

Šaukyklos archyvas

Apklausa

Ar esate patenkinti lietuviško vertimo kokybe?

Taip!

Taip, bet yra ką taisyti (parašysiu komentaruose)

Ne

Norėdamas balsuoti turite prisijungti.
Archyvas
Reklama 400x60
Saugumo patarimai
Patarimas nr. 1:

Neleiskime mūsų šnipinėti:



Papostinu vieną svarbu mano pasirašytą koduką - kurį naudokite administration/articles.php, administration/news.php, administration/faq.php prieš išsiunčiant kodą. Šis dalykas dalinai turėtų apsaugoti nuo tokių bjaurybių lietuvos hackerių kišančių snifferius į naujienas ar straipsnius.



// Strip Input Function for Members, prevents HTML in unwanted places

function superinput($text) {

   if (QUOTES_GPC) $text = stripslashes($text);

   $search = array("<script", "script>", "/script", "<?", "?>", "document.cookie", "+document", "cookie;", "Cookie:", "Image()", "_GET", "REMOTE_ADDR", "HTTP_REFERER",);

   $replace = array("&#45;script&#45;", "&#45;script&#45;", "&#45;script&#45;", "&lt;&#46;&#63;", "&#63;&#46;&gt;", "&#45;document&#45;", "&#45;document&#45;", "&#45;cookie&#45;", "&#45;cookie&#45;", "&#45;Image&#45;", "&#45;get&#45;", "&#45;remote&#45;addr&#45;", "&#45;http&#45;referer&#45;");

   $text = str_replace($search, $replace, $text);

   return $text;

}





Įtepti reikia čia:

dalyje $_POST['save'] (articles.php)

keiskite kodą:

$body = addslash($_POST['body']);

$body2 = addslash($_POST['body2']);


Į:

$body = superinput(addslash($_POST['body']));

$body2 = superinput(addslash($_POST['body2']));




Taip pat darykite ir su news.php.



=========================================================



Patarimas nr. 2:

Duom. bazės lentelėje users (Php MyAdmin) atsidarykite dalį "SQL" ir įvykdykite šią eilutę:

ALTER TABLE `PREFIX_users` ADD `user_specid` VARCHAR( 6 ) NOT NULL DEFAULT '999999' AFTER `user_id`



PREFIX - Jūsų duom. bazės priesaga.

999999 - bet koks 6-ženklis skaičius(sugalvokite bet ką).



Leiskite tik "legalius" prisijungimus. Redaguokite failą "maincore.php".

LOGIN DALIS:

Po:

if (isset($_POST['login'])) {

   $user_pass = md5($_POST['user_pass']);





Dėkite šią eilutę:

$spec_id = ""; for ($i=0;$i<=5;$i++) { $spec_id .= chr(rand(97, 122)); }



Jeigu kam nors kada nors kiltų klausimas kaip veikia chr(rand(97, 122)); , tai informuoju:

Rand ima bet kurį skaičių tarp, šiuo atveju, 97 ir 122 (įskaitytinai), o chr() paverčia skaičių raide per Ascii kodų lentelę. Ten atitinkamai a=97 (dec).



Prieš:

redirect(BASEDIR."setuser.php?user=".$data['user_name'], true);



Dėkite šią eilutę:

$res = dbquery("UPDATE ".DB_USERS." SET user_specid='$spec_id' WHERE user_id='".$data['user_id']."'");





Eilutę:

$cookie_value = $data['user_id'].".".$user_pass;



Keiskite į:

$cookie_value = $data['user_id'].".".$user_pass.$spec_id;





if (isset($_COOKIE[COOKIE_PREFIX.'user'])) { dalis:

Po:

$cookie_2 = (preg_check("/^[0-9a-z]{32}$/", $cookie_vars['1']) ? $cookie_vars['1'] : "");



Dėkite šią eilutę:

$cookie_3 = (preg_check("/^[0-9a-z]{6}$/", $cookie_vars['2']) ? $cookie_vars['2'] : "");





Eilutę:

$result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='$cookie_1' AND user_password='".md5($cookie_2)."' LIMIT 1");



Keiskite į:

$result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='$cookie_1', user_specid='$cookie_3' AND user_password='".md5($cookie_2)."' LIMIT 1");





=========================================================

Patarimas nr. 3:

"Deaktyvuokite" senus narius. Maincore.php faile keiskite:

if (isset($_COOKIE[COOKIE_PREFIX.'user'])) {

   $cookie_vars = explode(".", $_COOKIE[COOKIE_PREFIX.'user']);

   $cookie_1 = isnum($cookie_vars['0']) ? $cookie_vars['0'] : "0";

   $cookie_2 = (preg_check("/^[0-9a-z]{32}$/", $cookie_vars['1']) ? $cookie_vars['1'] : "");

   $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='$cookie_1' AND user_password='".md5($cookie_2)."' LIMIT 1");



į

if (isset($_COOKIE[COOKIE_PREFIX.'user'])) {

   $cookie_vars = explode(".", $_COOKIE[COOKIE_PREFIX.'user']);

   $cookie_1 = isnum($cookie_vars['0']) ? $cookie_vars['0'] : "0";

   $cookie_2 = (preg_check("/^[0-9a-z]{32}$/", $cookie_vars['1']) ? $cookie_vars['1'] : "");

   $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_id='$cookie_1' AND user_password='".md5($cookie_2)."' AND user_lastvisit>'".(time()-3600*24*30)."' LIMIT 1");





Ir:

if (isset($_POST['login'])) {

   $user_pass = md5($_POST['user_pass']);

   $user_name = preg_replace(array("/\=/","/\#/","/\sOR\s/"), "", stripinput($_POST['user_name']));

   $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_name='$user_name' AND (user_password='".md5($user_pass)."' OR user_password='$user_pass') LIMIT 1");





į:

if (isset($_POST['login'])) {

   $user_pass = md5($_POST['user_pass']);

   $user_name = preg_replace(array("/\=/","/\#/","/\sOR\s/"), "", stripinput($_POST['user_name']));

   $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_name='$user_name' AND (user_password='".md5($user_pass)."' OR user_password='$user_pass') AND user_lastvisit>'".(time()-3600*24*30)."' LIMIT 1");







Aktyvacijos faile, darote kopiją login.php failo, tik:

<input type='submit' name='login'



keičiate į:

<input type='submit' name='refreshuser'





Refresh kodas vartotojo aktyvacijos faile:

if (isset($_POST['refreshuser'])) {

   $user_pass = md5($_POST['user_pass']);

   $user_name = preg_replace(array("/\=/","/\#/","/\sOR\s/"), "", stripinput($_POST['user_name']));

   $result = dbquery("SELECT user_password,user_lastvisit,user_id FROM ".DB_USERS." WHERE user_name='$user_name' AND (user_password='".md5($user_pass)."' OR user_password='$user_pass') AND user_lastvisit<='".(time()-3600*24*30)."' ");

   if (dbrows($result) != 0) {

      $data = dbarray($result);

      if ($data['user_password'] == $user_pass) {

         $result = dbquery("UPDATE ".$db_prefix."users SET user_password='".md5($user_pass)."' WHERE user_id='".$data['user_id']."'");

      }

      if ($data['user_status'] == 0 && ($data['user_lastvisit'] < (time()-3600*24*183))) {

         $result = dbquery("UPDATE ".$db_prefix."users SET user_lastvisit='".time()."' WHERE user_id='".$data['user_id']."'");

      }

      redirect(FUSION_SELF."?inf=done");

   } else {

      redirect(BASEDIR."index.php");

   }

}





==============================

Patarimas nr.4:

Leiskite tik "tikrus" administratorius. Dabar dauguma IP statiniai, taigi:



administration/navigation.php faile pradžioje įrašome šį kodą:



$legal_ips = array(

   "78.11.22.33",

   "78.11.22.34",

   "78.11.22.35",

   "78.11.22.36"

);



if(!in_array(USER_IP, $legal_ips)) {

   if(iMEMBER) {

      $id = $userdata['user_id'];

      $name = $userdata['user_name'];

   } else {

      $id = "Svečias";

      $name = "";

   }

   $time = date("Y-m-d H:i:s");

   $reason = "Mėginimas įsilaužti. Vartotojo ID: $id , Nickas: $name . Data $time";



   $result = dbquery("INSERT INTO ".$db_prefix."blacklist (blacklist_ip, blacklist_reason) VALUES ('".USER_IP."', '$reason')");

   fallback(BASEDIR."index.php");

}





Tą pati darome ir administration .htaccess faile:

order deny,allow

allow from 78.11.22.33

allow from 78.11.22.34

allow from 78.11.22.35

allow from 78.11.22.36

deny from all







Pagal @ozzWANTED 2008 © PhpFusion-Lt.com

Straipsnio informacija

Autorius
ozzWANTED
Parašymo data
2009 sausio 2 10:01:15
Komentarų
33
Skaityta
5446
Spausdinti Spausdinti
Komentarai
frix 2009 sausio 2 10:01:35
Galima escap'inti ir pačią SQL užklausą:
function escape($uzklausa) {
$escape = mysql_real_escape_string($uzklausa);
$escape = parent::escape($escape);
return $escape;
}



----------------------------------
Redagavo frix 2009 Sau. 2 10:01:05
Niger 2009 sausio 2 16:01:33
Katron vieton ji deti? t.y kur mazdaug ji iterpineti ? ar neturi asmes kur ?
ozzWANTED 2009 sausio 2 17:01:39
Įtepti reikia čia:
dalyje $_POST['save'] (articles.php)
keiskite kodą:
$body = addslash($_POST['body']);
$body2 = addslash($_POST['body2']);

Į:
$body = superinput(addslash($_POST['body']));
$body2 = superinput(addslash($_POST['body2']));


Taip pat darykite ir su news.php.
----------------------------------
Redagavo ozzWANTED 2009 Sau. 2 17:01:58
ozzWANTED 2009 sausio 2 19:01:46
Kaip ir žadėjau - straipsnį išplėčiau ir papildžiau
- 2009 sausio 2 19:01:09
matosi geras staripsnis su gera apsauga
adulis 2009 sausio 2 20:01:37
Patarimas NR 1
Fatal error: require_once() [function.require]: Failed opening required 'maincore.php' (include_path='.:/php/php5/lib/php') in /home/strikes/ogline.net/administration/news.php on line 12




Dėl ko čia taip? Tą kodą patalpinau virš:
if (isset($_POST['save'])) {
   $news_subject = stripinput($_POST['news_subject']);
   $news_cat = isNum($_POST['news_cat']) ? $_POST['news_cat'] : "0";
   $body = superinput(addslash($_POST['body']));




Tas pats ir articles.php:
Fatal error: require_once() [function.require]: Failed opening required 'maincore.php' (include_path='.:/php/php5/lib/php') in /home/strikes/ogline.net/administration/articles.php on line 12



----------------------------------
Redagavo adulis 2009 Sau. 2 20:01:08
ramon 2009 sausio 2 20:01:15
maincore.php klaidingas include..
A-R-T-U-R-A-S 2009 sausio 2 21:01:24
ar butina 3 punkta daryti? labai jis svarbus?
adulis 2009 sausio 2 21:01:20
O kaip tą include ištaisyt?
_Tomas 2009 sausio 2 22:01:05
Nu tai blogai gal jis parašytas..

O šitas straipsnis tinka abiejom fusiono versijom?
adulis 2009 sausio 2 23:01:44
Tai kad V6 naujausia versija, nieko nekeitęs aš ten, gal veikia tik ant V7 ? akinanti šypsen
Niger 2009 sausio 3 00:01:16
pas mane tarp admin/news.php
yra tik sita eilute:
$body = addslash($_POST['body']);




Tai man ja keisti i sitas:

$body = superinput(addslash($_POST['body']));
$body2 = superinput(addslash($_POST['body2']));




?
Dandžu 2009 sausio 3 13:01:31
Pusė pamokos v7 pusė v6. be žado Apsispręsk ir padaryk vienai versijai arba abiejom.
adulis 2009 sausio 3 15:01:08
Jo būtų gerai nes dabar xuj kuris kuriai akinanti šypsen
ozzWANTED 2009 sausio 3 17:01:57
Tutorialas yra skirtas v7. v6 atveju vienintelis skirtumas yra "multisite_include.php" maincore,php faile. Tada v6 pilnai supras v7 kodą.
Ir jmj. Sharkman - tu gi adminas. Niekas netrukdo straipsnio pataisyti tinkamai ar jį papildyti. Aš pagrindus padėjau. Ir šis straipsnis nėra for begginers, todėl ne visi ir suprata.
----------------------------------
Redagavo ozzWANTED 2009 Sau. 3 17:01:04
ozzWANTED 2009 sausio 3 17:01:44
Niger, nu tiesiog visą outputą grūsk dar papildomai į superinput() kur yra saugoma į duom. bazę. body2 kažkur irgi pas tave news.php yra. Šiaip ir body ir body2 reikia įvilkti.
Jolanciux 2009 sausio 3 18:01:38
oh god be žado žalias miškas
A-R-T-U-R-A-S 2009 sausio 3 19:01:09
Na jo,teisingai sakote,padarykit v6 ir v7 atskirai,nes pripainiota,pripainiota... v7 news kitoks biski.Aie maincore visai patylesiu...padariau,neleidz prisijungti,teko maincore vel atstatyti.Butu gerai,kad padarytume v6 ir v7 atskirai,juk profams nera sunku,o ypac tokiem kaip ozz,sharkman,arba manjack.Butu geras darbas...
MAnjack 2009 sausio 3 20:01:16
Išbandysim šypsosi Gal reiks kažką dar savo pridėti šypsosi
frix 2009 sausio 3 20:01:18
Tai, kad čia nesąmonių prirašei. Prisijungimo tikrinime iš vis SQL injekciją ant lėkštutės padėjai. be žado Ir ar negeriau būtų vartotojui registruojantis suteikti unikalų specid?
A-R-T-U-R-A-S 2009 sausio 3 20:01:37
Jo,ManJack mes tikim tavim ;D sutvarkyk ta straipsni pagal kategorijas v6 v7 nes dabar makalyne gryna...
MAnjack 2009 sausio 3 20:01:42
Nu čia jis sumalęs viską akinanti šypsen ir v7 ir v6 akinanti šypsen
A-R-T-U-R-A-S 2009 sausio 3 21:01:41
ManJack atmalk akinanti šypsen vienas pradejo,kitas pabaikit.Taip turi dirbti fusion adminai.o ne taip vienas pradeda,kitas tingi atstatyti akinanti šypsen
ozzWANTED 2009 sausio 4 00:01:17
Tai, kad čia nesąmonių prirašei. Prisijungimo tikrinime iš vis SQL injekciją ant lėkštutės padėjai. Ir ar negeriau būtų vartotojui registruojantis suteikti unikalų specid?


Kvaileli, matau kad nelabai nusimanai. Parodyk tą savo sql 'injekcija", kai naudojama šita eilutė:
$cookie_3 = (preg_check("/^[0-9a-z]{6}$/", $cookie_vars['2']) ? $cookie_vars['2'] : "");


Ir nejuokink manęs su ta registracija. Šio modo ir yra esmė kad turint db ar kažką iš jo mažai naudos būtų. Matau kad saugume esi visiškai žalias. Šiame straipsnyje tiesiog pasidalinau keletu iš daugybės savo saugumo idėjų. Be abejonės visko sakyti tikrai negaliu, nes tuomet mano idėjos taptų nebeunikalios ir gebamos perprasti, ko aš visai nenoriu. Bet kuriuo atveju mid-users'iams šie dalykai bus labai naudingi - tiesiog reikia išmokti pasinaudoti.

Ir šio straipsnio esmė yra - NE NAUJOKAMS. Nesugebate suprasti - nedarykite. Jeigu nesugeba pasidaryti šito kas čia rašoma, vadinasi jus pergudraus per kitur. Blood ir jo šutvė yra tikrai ne kvaili žmonės, taip kad arba darykite viską, arba nedarykite nieko. Nes pusė darbo dažnai lygu nuliui darbo.
----------------------------------
Redagavo ozzWANTED 2009 Sau. 4 00:01:36
A-R-T-U-R-A-S 2009 sausio 4 08:01:27
Bet juk nea sunku padayti kas v7 o kas v6.ten nesunku redaguoti failus,kai parodyta,tik neaisku kuriai versijai kas tinka
MAnjack 2009 sausio 4 11:01:46
Kur užklausoj nėra $db_prefix - v7, kur yra - v6.
frix 2009 sausio 4 15:01:50
ozzWANTED, ne ta eilutė, ir iš vis, ten pats suklydau keisdamas sql užklausą, o komentaro redaguoti neleidžia. Su registracija tai supratau jau.
bruzgis 2009 sausio 4 21:01:36
rasiai rasiai straipsnius bet kaip tavo saitai krito, taip i krenta
ozzWANTED 2009 sausio 5 16:01:17
Atsimink vieną dalyką - čia yra fusion'o supportą. Vienintelį dalyką kur dariau viską maksimaliai pagal tų dienų galimybes - buvo dar 2006 metų viduryje buildintas mano antrasis saitas(pirmasis buvo themes, antras anas ir trečiasis šis). Čia tik dar dabar kartais įdedu kai kurias funkcijas iš tojo saito. Visgi jeigu pernelyg perdarysi core tai jis taps nebepanašus į fusion'ą. O saitas 'krenta' dėl LABAI LABAI LABAI elementarios priežasties - dėl buvusių(o gal ir esamų) moderų/adminų parsidavimo kartais pasitaikančio, bei kvailumo vedant passwordą...
----------------------------------
Redagavo ozzWANTED 2009 Sau. 5 16:01:43
lukasltxl 2009 sausio 10 17:01:08
o kur yra ipai tai ten sawo pakeist ipus?
adulis 2009 sausio 10 18:01:09
Taip
VainYzZ 2009 vasario 26 11:02:42
Ar kam nors padejo, tos apsaugos? šypsosi
xzona 2011 liepos 20 17:07:27
ir kur sita faila surast?????? Tą pati darome ir administration .htaccess failenežino?
Rašyti komentarą
Prisijunkite, norėdami parašyti komentarą.
Reitingai
Balsuoti gali tik nariai.

Prašome prisijungti arba prisiregistruoti.

Nėra reitingų.