Jump to content
php.lv forumi

endrju

Reģistrētie lietotāji
  • Posts

    111
  • Joined

  • Last visited

Posts posted by endrju

  1. Nu neko jau daudz nevar pateikt šim kaislīgajam uzbudinātam php fanam endrju :) Atkal vārīsies un piesiesies sīkumiem, es tik pateicu endrju, ko ir teikuši gudri cilvēki - nu vismaz savas pārdesmit reizes gudrāki par tevi gan jau ka viņi ir! :)

    Muahahhaa, pat tagad Tu vēl nesaproti; bezcerīgs gadījums. Labi, vāries vien savā sulā.

    P.S. Neesmu PHP fans, mana "mīļākā valoda" ir Perl.

  2. Par php speciālisti izteikušies diezgan konkrēti:

     

    Varbūt vēl tev iedod tekstus ko palasīt? Baigais "specs" jūties? Es neesmu baigais specs, bet es ta vismaz, ja saku, ka php ir sūds, tad arī zinu, ka tas ir sūds! Lūk, no wikipedia vēl:

     

     

    Vēl daži "jaukumi" no National Vulnerability Database:

    1) pēc "Drupal" (unikāls nosaukums tomēr) - tika atrasti 220 ieraksti - un Drupal fanāti vēl sauc Drupal par "drošu". ;)

    2) pēc "phpmyadmin" atrodam 79 ierakstus.

     

    Principā php ir derīgs divām lietām:

    1) njūbiem iepazīt elementāras darbības webu veidošanā, bet ne programmēšanā tā pa īstam.

    2) taisīt hobiju lapas - "Par mani, mans foto, mans video, mani piedzīvojumi".

     

    Viss.

     

    Nopietnas aplikācijas uz php nevar un nedrīkst taisīt. PHP == Personal Home Page.

     

    Sakot, ka esi trollis, es neaizstāvēju PHP, bet gan norādīju acīmredzamo. Tavi posti un "argumenti" saprātīgam cilvēkam neprasa daudz komentārus.

    Pie tam, arī pēc šī posta, var ļoti labi izvērtēt, ka esi parasts trollis ar analīzes trūkumu.

     

    Ja reiz gribi diskutēt konkrēti par PHP, tad to arī dari, nevis par produktiem, kas uz tā radīti. Bet Tu laikam to nevari, ne? Tas, ka daudzi tā produkti ir ar drošības caurumiem, ir vienkārši tādēļ, ka tas ir plaši pieejams un tam pieķeras surogātprogrammētāji. Bet, ja jau Tu gribi nodarboties ar statistiku un mērīt cik un kuras programmēšanas valodas radīti produkti ir visvairāk ar drošības caurumiem, tad nodarbojies ar to zinātniski, nevis kā layman. Varbūt paskaties cik softi rakstīti iekš C/C++ ir kļūdaini? Buffer overflow, format string, integer overflow, utt. Atver kādreiz Full-Disclosure saraksti un tad bļausties par PHP.

     

    Daudz kas ir atkarīgs no programmētāja, kas veido attiecīgo produktu, bet tāpat pastāv sakarība starp izplatību/pieejamību un kļūdām. Mums ir lielisks uzskates piemērs - Windows operētājsistēma, salīdzinot ar citām. Salīdzini marketshare un kļūdu skaitu.

     

    Un tas pēdējais teikums citātā ir vienkārši zelta vērts. Pats ar PHP nenodarbojies jau cik gadus un tāpēc arī laikam esi atpalicis no dzīves. PHP jau labu laiku tā neatšifrējas. Palasi vēsturi. Un Tu jau laikam arī domā, ka lielākie sociālie tīkli webā neizmanto PHP?

     

    Kretinē tie spamveida ieraksti. Naturāli atgādini tēlu "normunds", kas regulāri pods.lv un citur komentē visādas buļļa kakas. Tagad pat nožēloju, ka veltīju laiku atbildot uz šīm čurām.

  3. Paldies..

    Ļoti noderēja, esmu arī pārakstījis gandriz visu klasi, tāpēc šo topiku var pat slēgt.

    Liels paldies par ieteikumiem un palīdzību, tas viss man noderēja :)

    Tad varbūt padalies arī ar pārējiem?

  4. 	$result = mysql_query('select count(*) from '.$INFO['sql_tbl_prefix'].'sessions where id = "'.session_id().'";');
    $r = mysql_fetch_array($result);
    if ($r[0] < 1) {
    	mysql_query('insert into '.$INFO['sql_tbl_prefix'].'sessions values("'.session_id().'","",0,"'.$_SERVER['REMOTE_ADDR'].'","",'.time().',0,"idx,0,",2,0,"",0,"",0,"",0);');
    }

     

    Ir vajadzība ievietot manuāli sesiju lai pievienotu lietotāju online skaitītājam. Tik nevaru saprast kādā veidā IPB izvedo jaunu sesijas id?

    Ko tieši Tu nevari saprast? Kas nesanāk? Manuprāt, neesi īsti aprakstījis problēmu. Pēc koda izskatās, ka viss ir ok. Ja runa ir par pašu ID, tad tas ir parasts md5. Lai vai kā, lūk izrāvus no paveca mana koda, varbūt noder:

     

    private function createMemberSession() {
    	$iMember_ID = (int)$this->iMember_ID;
    	if ($iMember_ID < 1)
    		return false;
    
    	$this->destroyMemberSession();
    	$sSession_Expiration = time() - 3600;
    
    	$sSession_ID = md5(uniqid(microtime()));
    	$this->sSession_ID = $sSession_ID;
    
    	$saFields = array(
    		'id'                 => array('s', $this->sSession_ID),
    		'member_name'        => array('s', $this->saMember['members_display_name']),
    		'member_id'          => array('i', $iMember_ID),
    		'member_group'       => array('s', $this->saMember['mgroup']),
    		'login_type'         => array('i', (int)substr($this->saMember['login_anonymous'], 0, 1)),
    		'running_time'       => array('i', time()),
    		'ip_address'         => array('s', $this->sIP),
    		'browser'            => array('s', $this->sUserAgent),
    		'location'           => array('s', 'idx,0,'),
    		'in_error'           => array('i', 0),
    		'location_1_type'    => array('s', ''),
    		'location_1_id'      => array('i', 0),
    		'location_2_type'    => array('s', ''),
    		'location_2_id'      => array('i', 0),
    		'location_3_type'    => array('s', ''),
    		'location_3_id'      => array('i', 0)
    	);
    	$oSQLResult = fDB_DoInsert(self::$sIBFpre . 'sessions', $saFields);
    }
    

  5. Nu es kaut ko tik bezjēdzīgu diez vai kaut kad veidošu. Manuprāt, pilnībā pietiek ar IP pārbaudi, vēl var pielikt pārbaudi uz user agent. Bet tavā gadījumā, nekas jau nemainās.

    -Tu atver lapu, tev iznīcina vecos sesiju izveido jaunu.

    -Es nozogu kūkiju ar sessijas id, atveru ar to lapu un atkal tu vairs netiec pie savas sesijas. :)

    Tas nodrošina tikai pret to, ka man ir jābūt ātrākam nekā tev, izdarot nākamo pieprasījumu. Pārbaudi kaut vai pats ar diviem dažādiem pārlūkiem.

    :DDD labi, neturpināšu.

  6. Es neredzu arī īsti jēgu pārģenerēt. :) Tas, man liekas, radīs tikai papildus problēmas.

    Jo es to redzu tā:

    - Tu izdari pieprasījumu, tev izveido sessiju

    - Es nozogu sessijas id, izdaru pieprasījumu ar to, man uzģenerē jaunu, veco iznīcinot.

    - Tu uztaisi nākamo pieprasījumu un no tavas sessijas nekas vairs nav palicis. :)

    - Es turpinu darboties ar taviem datiem un varu vairāk neuztraukties par to, ka tu pieprasījumu varētu izdarīt ātrāk un sessija tiktu iznīcināta.

    Kad pamēģināsi to implementēt, sapratīsi. Sessijas ID jau vairs nav derīgs, kad lapa ir atvērta. Respektīvi, nav jēgas pat ja nozog to id.

  7. Sessijas id nav nemaz jēgas pārbaudīt, jo tas būs tāds pats. Ja jau es nozogu kāda sessijas id un ar to slēdzos, tad man arī izveido viņa sessiju, kura saturēs to pašu id.

    Normāli vispār būtu sessijas ID uz noteiktu skaitu hitu pārģenerēt. Paranoidālākie to dara pie katra hita.

  8. Drošvien datubāzē viss glabājas ne UTF-8, bet ISO-8859-13 vai citā. Tātad:

     

    $enc_db = 'ISO-8859-13';
    $enc_www = 'UTF-8';

     

    1) nolasot datus:

    mb_internal_encoding($enc_db);
    (..)
    $lauks = mb_convert_encoding($lauks_no_sql, $enc_www);

    2) saglabājot datus (pretēji):

    mb_internal_encoding($enc_www);
    (..)
    $lauks = mb_convert_encoding($lauks_no_www, $enc_db);

  9. Nu kas Tev tieši nav skaidrs? Pieslēdzies 43 portam. Nosūti domēnu plain/textā un gaidi atbildi. Un kas tās par muļķībām, ka rāda, ka visi domēni aizņemti?

    Atver kaut uz sava datora konsoli un pats uzraksti "telnet whois.nic.lv 43", ievadi "blablabla.lv" un saņem "%ERR - Nothing found".

  10. <input type="text" name="username" value="<?=$_POST['username']?>"/>

    Hehe, atkal ne līdz galam. Tā tie saiti ar XSS rodas.

     

    Hint: kas notiks, ja input laukā ievadīs pēdiņas, "<" vai ">"?

  11. Es iekopēju to kodu ko tu iedevi. Uzmetu error_reporting(E_ALL), bet nekādas starpības kļūdas aprakstā.

    Un display_errors ir on? Tas tiešām ir vienīgais kļūdas paziņojums? Tas, par mysql_num_rows().

×
×
  • Create New...