« Iš seno os_linux@ archyvo | Main | Teatras: Demonai. Nelabieji. Apsėstieji. Kipšai. »

PhpConf2005 + php tips

Hm, šiandien ryte pervertęs http://lietblogs.net, sužinojau, kad prabėgo PhpConf2005. O aš ir nebuvau. Nu ir gerai, vistiek php jau 100 metų nebeprogramuoju :) Visgi pakrapštęs seną šiukšlyną įmetu kelis kodo pavyzdukus, kurie galbūt būtų naudingi kokiem nors arbatinukams.

Toliau nežiūrėkit - seno dumb php 4?? kodo blynai.

Tip #1

// kokia šito daikto paskirtis? - atspėkit

	function addslashes_r(&$input)
	{
		applyFunction($input, 'addslashes');
	}

	function applyFunction(&$input, $function)
	{
		foreach ($input as $k => $v) {
			if (is_array($v)) {
				applyFunction($input[$k], $function);
			} else {
				$input[$k] = $function($v);
			}
		}
	}

// naudojimo pavyzdys

        addslashes_r($_POST);
	addslashes_r($_GET);


Tip #2

Pasirodo net ir šiandien daug arbatinukų daro taip:
$query = "SELECT id,* FROM users WHERE login = '".$_POST['login']."' AND passwd = '".$_POST['passwd']."' ";

O jeigu
$_POST['login'] == 'admin\'--'


Resursai:
  [1] Lietuvos php bendruomenė
  [2] PhpConf2005

Comments

na pirmojo tipso paskirtis yra pridėlioti slešų nekuriant kintamojo kopijos o tiesiog padarant "referencą" į jį .) antrasis yra paprastas SQL-injection pavyzdys .)

pirmo tipso paskirtis parodyt funkciją applyFunction ir kam nors palengvint darbą su parametrų parsinimu (taip pačiai galima tą funkciją naudot kariavimui su magicquotes - jei dar kur pasitaiko ir t.t.), antras (visai teisingai) - sql injection; o bendrai paėmus - tai leidimas man čia padėt (galbūt) kažką kažkam naudingo ir ramia dūšia ištrint gabaliuką savo archyvo kaip niekam nebereikalingo.