Cik reizes nav teikts, neglabājiet visiem lasāmos failos svarīgu informāciju? Liekas, ka pietiekoši.

Kāda laba paziņas uzņēmumā kāda Latvijas firma, pietam diezgan pazīstama, izstrādāja mājas lapu. Dizains smuks, adminstrācijas rīku neesmu redzējis, bet gan jau arī labs. Šodien joka pēc iegāju viņu mājas lapā un secināju, ka PHP konfigurētājs nebija uzstādījis display_errors = off php.ini failā. Attiecīgi man tika parādīts kļūdas paziņojums par to, ka kaut kādas problēmas rodas ar failiem, kuru paplašinājums ir .inc. Oho! Vai tik te kādam nav problēmas ar drošību?

Daudz nedomādams un pēc dabas būdams ziņkārīgs, ņēmu un apskatīju failu. 520 rindiņas tīra PHP koda, mazliet nojausmas par to, kāda ir lapas un datubāzes struktūra. Daži triki ar visiem zināmiem direktoriju un failu nosaukumiem config, config.inc, tad vēl nedaudz eksperimentu lapas publiskajā pusē un voila! kaut kas par config/main.cfg problēmām. Divreiz jau nav jāsaka - veram vaļā. Ko mēs tur ieraugām? MySQL lietotāja vārds un parole. Skaisti. Pietrūkst kaut kas - nav ne iespēju pieslēgties MySQL serverim, ne kā citādi piekļūt tuvāk serverim.

Nekas. Veram vaļā izstrādātājfirmas portfolio un meklējam citas lapas. Nepaiet i ne 10 minūtes, kad esmu atradis jau mazliet interesantāku konfigurācijas failu, kurā mistiskā kārtā ir arī FTP lietotāja vārds un parole. Izstāstiet man muļķim, kur var kaut ko tādu iedomāties, kā FTP paroli glabāt visiem pieejamā plain-text failā? Klik, klik, esam iekšā, atrodam, ka uz servera web-root direktorijā atrodas mapīte mydb, atveram. Neticēsiet, bet mums ir arī phpMyAdmin. Ņemam šo informāciju talkā un dodamies pie iepriekšējām lapām, paskatamies, jā ir tāda lieta. Arī bez FTP paroles varam tikt pie mājas lapas datiem.

Kas tālāk? Konfigurācijas failā atrodas ieraksts par administratora e-pastu. Tas nu gan ir noderīgi. Vismaz zini, kam jāziņo par iegūto piekļuves informāciju. Aizsūtīju administratoram draudzīgu brīdinājumu, pielikumā iekļaujot konfigurācijas failu. Pretī saņemu atbildi:

Hello Ingus,

Jaa , dazhreiz gadaas , kad saiti hosteejas pie treshaam personaam
kuri nepieklausaas pie sniegtaam rekomendaacijaam.

– Best regards, [izgriezts] mailto:[izgriezts]

Ak tie vainīgie klienti, visi muļķi neklausās, ko mēs viņiem stāstām. Man liekas, ka par .inc, .cfg un citu visiem lasāmo failu izmantošanu drīz jau pamatskolā sāks mācīt. Tas ir triviālākais un viens no klasiskākajiem paraugiem par to, kā nevag programmēt, bet redz firma uzskata, ka viņas klienti ir pie visa vainīgi un neklausās viņos. Nabadziņi.

Nu neko darīt, mazliet jāpabiedē (bet bez blefa) cilvēki:

Paklausieties, par kaadaam rekomendaacijaam juus runaajat? Shii ir klasiskaakaa un elementaaraakaa PHP kodeeshanas droshiibas probleema. To pat cilveeki, kas 2 meeneshus PHP kodee jau zina.

Jums atsuutiit www.[izgriezts].lv FTP paroli un www.[arī izgriezts].lv linku uz phpMyAdmin ar visiem autorizaacijas datiem?

Tie ir juusu klienti un juusu atbildiiba .. man neprasiitu ne i 10 sekundes laika, lai vismaz 2 (citas neesmu mekleejis) juusu veidotas lapas nonestu liidz nullei, bet jums ir vienalga?

Es buutu teicis, ka jums ir interesanta attieksme pret saviem klientiem.

Ingus

Saņēmu atbildi, ka viņi šīs dienas laikā izlabošot kļūdas. Skaisti! Esmu devis ieguldījumu drošākā Latvijas internetā (glaimoju pats sev).

Hello Ingus,

Nee. Muums nav vienalga.
Bet kluudas gadaas visiem , iipashi kad ir paarnests 3 gadu vecs kods.

Uz muusejiem serveriem aizliegts dabuut un paarnesot uz citiem
serveriem paraadiijaas.

Paldies par atgadinaajumu, mees to izlabosim shodienas laikaa.

– Best regards, [izgriezts] mailto:[izgriezts]

Tātad, ko mēs no tā iemācījāmies? Vēlreiz redzējām, ka ir programmētāji (arī labās un pazīstamās firmās), kas ir saprogrammējuši līku PHP kodu, izmanto vienu un to pašu dzinēju nez cik lapām, pie tam nerūpējas par drošību. Mans nodoms nebija lauzt un nekas arī netika ne rakstīts, ne dzēsts. Piekļuvu tikai tam, kam jebkurš cilvēks varētu piekļūt izmantojot parastu interneta pārlūkprogrammu un kādu FTP programmatūru. Teorētiski, šajā vietā varētu uzrakstīt tekstu “Esiet piesardzīgi, ja izmantojat firmas X satura vadības sistēmu”, taču ņemot vērā, ka caurumi vēl nav aizlāpīti, tad nenosaukšu ne firmu, ne arī satura vadības sistēmas nosaukumu. Tikai esiet lūdzu tik laipni un mācieties no citu kļūdām:

  1. kļūdu parādīšana publiski
  2. apmeklētājam pieejams PHP kods caur .inc, .cfg un citiem interesantiem failu tipiem
  3. sensitīva informācija pieejama publiski