Amatőr webfejlesztő

Másfél évtizede vagyok része a webfejlesztés világának. Korábban egyszerű HTML oldalak még talán mentek, de munkahelyi ártalomból kénytelen voltam jobban megismerni a dinamikus weboldalak fejlesztésének világát. Mint oly’ sokan, én is a hülyék scriptnyelvével kezdtem – a PHP-val – amit a mai napig is művelek, de még mindig amatőr szinten. Persze itt most ki leszek oktatva, hogy amatőr az, aki ingyen csinálja, profi pedig az, aki pénzért. Olvass tovább…

2018.02.11. 10:40 - legyes

Hasznos PHP class tartalom Google AMP projekthez

Arról, hogy érdemes-e használni az AMP-t vagy hogy érdemes-e feláldozni a funkcionalitást a sebesség oltárán, megoszlanak a vélemények. Sajnos a legtöbb weboldal komoly módosítást (újraírást) igényel, hogy teljesen AMP kompatibilisen működhessen. Viszont ha elegendő a “fél-AMP” (hibrid-AMP, ami valójában a tartalmi oldalak AMP verziója) akkor sokat segíthet a következő linken található PHP class: https://github.com/Lullabot/amp-library

2017.04.03. 12:05 - legyes

CSV fájl készítése Microsoft Excel számára

A Microsoft és a Cisco élen jár abban, hogy saját módon értelmezzék a szabványokat, amiket amúgy az egész világ betart. Például ha CSV formátumot szeretnénk használni – amire RFC szabvány is van – akkor a Microsoft kicsit átalakítja a saját szájíze szerint. Például magyar lokalizációs területen SSV lesz belőle (Semicolon Separated Values azaz pontosvessző, Comma azaz vessző helyett). Az idézőjeleket is sajátságosan kezeli, a karakterkódolásról már ne is beszéljünk (persze, hogy Windows-1252 és nem UTF-8, amiben nagy eséllyel az adatbázisban van.

A megoldást ez a weboldal adta meg: https://www.skoumal.net/en/making-utf-8-csv-excel/ köszönet érte. A szokványos PHP-s leírásoktól ez abban tér el, hogy az UTF-8 fájl elejére odateszi a BOM-ot is (Byte Order Mark), aminek köszönhetően az Excel nem fogja valami alien titkosírásnak vélni az amúgy megfelelően formázott szöveget. Olvass tovább…

2017.03.22. 20:47 - legyes

Böngésző kliens oldali hibák naplózása szerver oldalon

Webapp fejlesztéskor felmerül az az igény, hogy valahogy tudni kellene a JavaScript kódban felmerülő hibákról. Persze van az a változat, hogy “Légy szíves nyomj egy Control+Shift+I -t, válaszd a Konzol-t és mondd el, hogy mit látsz”, de ez annyira nem praktikus. A reggeli kávé melletti Facebook postok görgetése közben egy hasznos webes blogra bukkantam, a https://blog.fps.hu -ra. Bejegyzéseikből látszik, hogy a témát náluk is az Élet adja. Ott találtam a témaindító bejegyzést: JavaScript hibák naplózása szerver oldalon . Amit én egy kicsit átszabtam:
Olvass tovább…

2017.02.10. 15:34 - legyes

XML konvertálása JSON objektummá vagy asszociatív tömbbé PHP-vel

Annak ellenére, hogy a JSON nagyon hódít – nyilvánvaló okok miatt, még mindig nagyon sokan használnak XML formátumokat. Többek között ilyen az RSS feed is, de az egyik legerősebb marketinggel rendelkező bérelhető webshop API-ja is, a ShopRenteré. XML-el dolgozni viszont rémálom a JSON-höz képest. Így hát felmerült a probléma, hogy  valami egyszerű megoldás kellene, ahelyett, hogy minden XML-t végignézek. Olvass tovább…

2017.02.08. 00:45 - legyes

Fejlesztői online közösség tagjának lenni…

facebook_php_kozossegNem vagyok egy szociális alkat, nagyon ritkán lépek be közösségekbe, még ritkábban szakmai közösségekbe. Mivel egy ideje főállásban PHP-zom, úgy gondoltam, hogy rengeteg hasznos dolgot tanulhatok másoktól, mert kissé megakadtam az önképzésben. Ezért úgy véltem, hogy jó ötlet megkeresni a magyar PHP-s közösségeket. Mivel ezek újabban már nem IRC szobákban, hanem Facebookon szerveződnek, ezért csatlakozási igényem jeleztem a megfelelő csoportokhoz és a legtöbbe fel is vettek.

Valahogy mégsem azt kaptam, amit vártam. Szakmai eszmecsere nem nagyon folyik bennük, olyan még kevesebb, amiből tanulni is lehetne valamit. Kétféle típusú ember lakja ezeket a közösségeket nagyrészt. Az első el van tévedve, élete első fejlesztő környezetét próbálja meg összerakni. A második az istenkomplexusos fajta, akitől okosabb az egész világon nincs. Szakmai dolgokról szinte sohasem esik szó, jellemzően csak egy állás apróhirdetés rovat, ebből ragadtam ki a bejegyzéshez mellékelt képet is. Olvass tovább…

2016.10.26. 00:36 - legyes

Fájl feltöltés Windows alól cURL segítségével

A cURL nagyon széles körben használt program, sokan feszegetik a határait (pl. PHP futtatás párhuzamosításban) és használják webes botok alapjául is. Nagyon sok argumentummal rendelkezik, a –help több oldalas listával örvendeztet meg.
Hogy megtaláljam később is, leírom ide, hogyan lehet fájl feltölteni POST-tal, valamint egyéb paramétereket átadni. A program letölthető kb. minden létező operációs rendszerre a https://curl.haxx.se/download.html címről.

curl -X POST -F "xml=@C:\\Data.xml" -F "api_key=d040207a" http://peldadomain.hu/api/szolgaltatas.php

Az előbbi példa PHP oldalon úgy jelenik meg, hogy lesz egy $_FILES['xml'] és egy $_POST[‘api_key’]. Ennek segítségével akár Windows alatt is automatizálhatunk könnyedén adatfrissítéseket. (A fájlok elérési útjában Windows alatt mindig dupla \ jel van, ahogy egyéb Windows-os elérési út megadásnál már megszokhattuk.)

2016.08.30. 13:17 - legyes

Munin grafikon készítés, kezdő szinten

A Munin a lusta rendszergazdák barátja, mert egyszerű vele megoldani monitorozott értékek látványos megjelenítését. Az alábbiakban bemutatok pár alap dolgot vele kapcsolatban, valamint a plugin készítés alapjait. Az online demo oldalak megtekinthetők a hivatalos oldalon, például itt. Mit lehet megjeleníteni a grafikonon? Hát mindent, ami valamilyen módon számosítható.

mysql_queries-day

Olvass tovább…

2016.08.19. 12:44 - legyes

Szerverszoba hőmérséklet projekt v2: ESP8266, DS18B20

ESP8266_DS18B20Az előző bejegyzésben egy látványos változatát készítettem el a wifis hőmérséklet mérőnek. Az alábbiakban pedig egy olcsó és picike változat következik. A teljes beruházási költség Kínából számolva nem éri el az 1000Ft-ot és akár több szenzorosra is bővíthető. A programozáshoz szükség van egy USB-soros átalakítóra (FTDI/CH), de a használathoz már nincs. Az eredmény most is JSON objektumként fog weben megjelenni, ennek köszönhetően a Munin plugin azonos az előző változatban leírtakkal. Olvass tovább…

2016.08.14. 12:26 - legyes

Miért nem használok PHP frameworköt?

Felhívom a PHP Pro-k figyelmét, hogy a következő tartalom a nyugalom megzavarására alkalmas!

 

Az előzmények

Már nem is emlékszem évre pontosan pontosan, hogy mikor kezdtem először PHP-val foglalkozni, talán 2004-ben. Az első kecskeméti munkahelyemen, a felvétel egyik követelménye volt. Két napom volt megtanulni alap szinten, úgy, hogy minimális HTML ismerettel rendelkeztem (még a <form> -okat sem használtam előtte soha). Hol voltak még az online oktatók ingyen, a letölthető könyvek, miegymás? Hétvégén a semmiből tanulni, kb. lehetetlen küldetésnek tűnt. Szerencsémre Noxy kimentett és elmagyarázta nekem a lényeget. Akkor már sejthettem, hogy később a “hülyék nyelvének” fogom hívni: ha nekem sikerül megtanulni, akkor bárkinek sikerül. Olvass tovább…

2016.08.03. 00:51 - legyes

WordPress érdekesség, avagy miért nem jó ötlet fröccsöntött rendszereket használni

A minap a segítségem kérték, mert egy szerver spammelt, letiltották és azonosítani kellett a baj forrását. Kiderült, hogy feltörtek rajta egy WordPress blogot, és ezzel elég nagy bajt okoztak, ugyanis a WordPress PHP-ja hozzáfért egyéb könyvtárakhoz is, amiben más PHP oldalak futottak.

  1. Első alkalommal valószínűleg egy kép plugin hibát kihasználva base64-ben kódolva feljutott pár PHP fájl. Általában a szokásos dolgokra voltak kihegyezve:
    • teljes adatbázis leképezés, amihez a WordPress felhasználója hozzáfér
    • teljes könyvtárstruktúra leképezés, amihez a WordPress-t futtató PHP hozzáfér
  2. Következő lépésben elrejtett véletlenszerű könyvtárakban PHP fájlokat, amik több funkciót láttak el:
    • önmagukat terjesztették, mint file proxy
    • spam leveleket küldtek
    • webproxy-t hoztak létre
    • egyéb vicces dolgokat “telepítettek” egykattintásos szolgáltatókon hostolt címekről
  3. A legviccesebb lépése pedig az volt, hogy létező (lehetőleg index.php) PHP fájlok első sorába is elhelyezte magát a 11900. oszloptól! A fájlokba belenézve semmi érdekes nincs. De a grep mégis kidobja, hogy ott van benne az eval, sőt magát a kódot is. Nano-ban vagy mceditben az eval-hoz is ugrik, de belenézve nem látni.wordpress_hack2
    find . -name "*.php" -exec grep -H "eval" {} \; | more

    wordpress_hack

 

Update #1:

Közben találtam még egy finomságot:

wordpress_hack3

 

Mi a tanulság? Ha már fröccsöntött motorokat (WordPress, Joomla, Drupal, …) használunk, frissítsünk, amilyen gyakran csak lehet. Igen, ez is WordPress 🙂

Közel 4 óra volt kibelezni a különféle vicces dolgokat művelő PHP-kat a mappákból és még biztosan találni ezt-azt 🙁

Ui.: Most komolyan, mit nem lehet azon érteni, hogy NE HASZNÁLJ eval()-t, soha, semmiben. De főleg abban nem, ami felhasználó által bevihető inputból származik.

Update #2:

Egy kis Joomla hack. Az 1. sor: assets(), a 2. base64_decode() és már ott is az eval :(
Egy kis Joomla hack. Az 1. sor: assets(), a 2. base64_decode() és már ott is az eval 🙁

Kis olvasnivaló: https://www.exploit-db.com/exploits/17602/ és https://forums.digitalpoint.com/threads/wp-hack.2734636/ és https://jordankueh.com/2014/wordpress-remote-code-execution-base64_decode/ és https://jordankueh.com/2014/wordpress-remote-code-execution-base64_decode/ és http://msurowiecki.pl/index.php/inne/106-wordpress-under-attack-april-2013-tips-to-remove-spyware

2016.03.26. 17:38 - legyes
1 2