Go achomair: Chun an bunachar sonraí a sheiceáil ar chód mailíseach, cuardaigh easpórtáil nó cóip le fiosrúcháin léite ar scripteanna insínte, seoltaí coimhthíocha agus cód doiléirithe in inneachar agus i socruithe. Seiceáil trigeartha, imeachtaí sceidealaithe, nósanna imeachta stóráilte agus úsáideoirí an bhunachair sonraí freisin. Ná glan ach tar éis measúnaithe agus riamh le cuardach agus ionadú dall, mar go mbristear sonraí sraitheacha ar shlí eile.
An láthair dhall i go leor glantacháin
Tar éis briste isteach seiceálann formhór na n-oibritheoirí na comhaid. Cuireann siad ionad ar chroílár an CMS, scriosann siad comhaid PHP amhrasacha agus suiteálann siad síntí as an nua. Tá cuma ghlan ar an suíomh gréasáin ina dhiaidh sin, agus seachtain ina dhiaidh sin athsheolann sé chuig leathanaigh choimhthíocha arís. Is minic gurb é an bunachar sonraí, a glacadh gan athrú le linn an ghlantacháin, an chúis.
Is áit folaigh tarraingteach an bunachar sonraí d'ionsaitheoirí. Seachadtar script i bhfeidhmchláirín ar gach leathanach. Athsheolann socrú seoltaí athraithe gach cuairteoir. Osclaíonn cuntas riarthóra breise an doras don todhchaí. Ní thugtar faoi deara aon cheann de sin le linn scanadh comhad.
Tar éis PHP2Shell, na leochaileachtaí CVE-2026-109618 agus CVE-2026-109619 le rith cóid gan logáil isteach, bíonn an bunachar sonraí mar chuid de gach seiceála mar sin. An té is féidir leis cód a rith ar an bhfreastalaí, is féidir leis de ghnáth na sonraí rochtana don bhunachar sonraí a léamh ón gcumraíocht agus scríobh ansin mar is mian leis. Míníonn PHP agus bunachair sonraí: PDO agus mysqli conas a labhraíonn an feidhmchlár leis an mbunachar sonraí ar chor ar bith.
Cá bhfuil cód mailíseach i bhfolach sa bhunachar sonraí
| Áit an fhionnachtana | Inneachar tipiciúil | Éifeacht |
|---|---|---|
| Inneachar (postálacha, leathanaigh, táirgí) | bloic <script>, naisc dofheicthe, <iframe> |
cód mailíseach nó spam do chuairteoirí |
| Socruithe agus roghanna | seoladh suímh gréasáin athraithe, scripteanna coimhthíocha i bhfeidhmchláirín nó roghanna téama | athsheolta, scripteanna ar gach leathanach |
| Táblaí úsáideoirí | riarthóirí breise | rochtain bhuan |
| Trigeartha | cód a athraíonn inneachar le gach sábháil | filleann cód mailíseach tar éis glantacháin |
| Imeachtaí sceidealaithe | tascanna athfhillteacha i bhfreastalaí an bhunachair sonraí | athruithe gan rochtain ghréasáin |
| Úsáideoirí bunachair sonraí | cuntais bhreise le cearta fadréimseacha | rochtain thar an CMS |
Is minic a chaillfear na trí líne dheireanacha toisc nach bhfuil siad i dtáblaí an CMS, ach i bhfreastalaí an bhunachair sonraí féin.
I siopaí ar líne, tá áit amháin ar fiú aird speisialta a thabhairt uirthi: socruithe trína n-ionchuimsítear scripteanna breise sa chiste agus i gcríochnú an ordaithe. Is féidir le script choimhthíoch san áit seo ionchuir na gcustaiméirí a léamh sula dtéann siad go criptithe chuig an tseirbhís íocaíochta. Seiceáil dá bhrí sin go sonrach gach réimse do chód ceanntásca agus buntásca, ionchuimsithe rianaithe agus socruithe dearaidh a chuireann isteach ar leathanaigh an chiste.
Smaoinigh freisin ar bhunachair sonraí eile ar an bhfreastalaí céanna. Bíonn cóipeanna tástála agus stáitse, seanstaideanna tionscadail nó bunachair sonraí suíomhanna gréasáin eile go minic in aice láimhe agus is féidir teacht orthu leis na sonraí rochtana céanna. An méid a aimsítear sa bhunachar sonraí beo, ba cheart é a sheiceáil ansin freisin sula n-úsáidtear cóip níos déanaí arís mar bhunús.
Bunachar sonraí a sheiceáil ar chód mailíseach: inneachar agus socruithe
Oibrigh ar easpórtáil. Is cinntiú fianaise agus bunús cuardaigh í ag an am céanna. Is féidir an easpórtáil a chuardach mar chomhad téacs gan ualach a chur ar an mbunachar sonraí reatha:
# Easpórtáil chomhsheasmhach a chruthú (iarrtar sonraí rochtana)
mysqldump --single-transaction --routines --triggers --events -u BENUTZER -p DATENBANK > export.sql
sha256sum export.sql > export.sql.sha256
# Patrúin thipiciúla san easpórtáil a chomhaireamh
grep -oiE '<script[^>]{0,80}' export.sql | sort | uniq -c | sort -rn | head -30
grep -oiE '(eval\(|base64_decode|fromCharCode|document\.write|atob\()' export.sql | sort | uniq -c
grep -oiE 'https?://[a-z0-9.-]+' export.sql | sort | uniq -c | sort -rn | head -50
Liostálann an fiosrúchán deireanach na fearainn go léir a tharlaíonn sa bhunachar sonraí, de réir minicíochta. Is iad fearainn choimhthíocha nach bhfuil aithne ag aon duine san fhoireann orthu na hiarrthóirí is tábhachtaí. Le haghaidh fiosrúchán spriocdhírithe sa bhunachar sonraí féin, oireann orduithe SELECT. Úsáideann an sampla táblaí WordPress; tá réimír agus ainmneacha táblaí córas eile i ndoiciméadacht na gcóras sin:
-- Socruithe le scripteanna nó le feidhmeanna amhrasacha
SELECT option_name, LENGTH(option_value) AS laenge
FROM wp_options
WHERE option_value LIKE '%<script%'
OR option_value LIKE '%eval(%'
OR option_value LIKE '%base64_decode%'
ORDER BY laenge DESC;
Ba cheart aird speisialta a thabhairt ar iontrálacha le hinneachar an-mhór. Tá cúlra faoi fholaithe sonracha WordPress sa treoir Dorais chúil i WordPress a aimsiú.
Trigeartha, imeachtaí agus cuntais bhunachair sonraí
Níl trigeartha agus imeachtaí sceidealaithe beartaithe i go leor feidhmchlár gréasáin ar chor ar bith. Má tá siad ann, ba cheart go bhféadfadh duine éigin a mhíniú cén fáth. Ní léann na fiosrúcháin seo ach ó chórastáblaí MySQL agus MariaDB:
-- Trigeartha i ngach bunachar sonraí
SELECT TRIGGER_SCHEMA, TRIGGER_NAME, EVENT_OBJECT_TABLE, CREATED
FROM information_schema.TRIGGERS;
-- Imeachtaí sceidealaithe
SELECT EVENT_SCHEMA, EVENT_NAME, STATUS, CREATED, LAST_EXECUTED
FROM information_schema.EVENTS;
-- Nósanna imeachta agus feidhmeanna stóráilte
SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, CREATED
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA NOT IN ('mysql', 'sys', 'information_schema', 'performance_schema');
-- Úsáideoirí bunachair sonraí
SELECT user, host FROM mysql.user ORDER BY user;
Má úsáideann d'fheidhmchlár PostgreSQL nó córas bunachair sonraí eile, tá ainmneacha éagsúla ar chórastáblaí agus ar orduithe; fanann an prionsabal mar an gcéanna. Don anailís moltar úsáideoir bunachair sonraí dá chuid féin nach bhfuil cead aige ach léamh. Ar an gcaoi sin ní féidir fiú le hearráid chlóscríbhneoireachta i bhfiosrúchán aon rud a athrú, agus ní fhágann an tseiceáil rianta sna sonraí.
Míníonn trigear a chuireann cód i gceangal agus postáil á sábháil cén fáth a bhfilleann cód mailíseach tar éis gach glantacháin. Baineann úsáideoirí bunachair sonraí anaithnide leis an gcuntas-seiceáil mar a bhaineann cuntais riarthóra sa CMS; tuilleadh faoi sin ag Cuntais riarthóra choimhthíocha a aimsiú sa CMS agus ar an bhfreastalaí.
Glanadh i gceart, gan sonraí a scriosadh
Is é an glanadh an chuid is íogaire. Tá an t-ord seo suas chun na hoibre:
- Fionnachtana a mheas: Rangaítear gach amas mar aitheanta, inmhínithe go neamhdhíobhálach nó coimhthíoch. Is minic a bhíonn cóid rianaithe agus léarscáileanna dlisteanach.
- An bealach isteach a dhúnadh: Tabhair PHP chuig staid cheartaithe (8.5.12, 8.4.27, 8.3.36, 8.2.35 nó backport deimhnithe), atosaigh gach worker, nuashonraigh an feidhmchlár.
- A bhaint go spriocdhírithe: Glan inneachar coimhthíoch tríd an bhfeidhmchlár nó le huirlisí a láimhseálann sonraí sraitheacha i gceart. Scrios trigeartha, imeachtaí agus cuntais choimhthíocha.
- Sonraí rochtana a athrú: Focal faire nua don bhunachar sonraí, iontráil i gcumraíocht an fheidhmchláir é, cuir teorainn le cearta úsáideoir an fheidhmchláir ar a bhunachar sonraí féin.
- Athsheiceáil: Déan na fiosrúcháin chuardaigh arís tar éis cúpla lá.
Ná hionadaigh aon rud le cuardach agus ionadú san easpórtáil SQL. Stórálann sonraí PHP sraitheacha fad gach teaghráin leo. Má athraíonn an fad, éiríonn an socrú dothuigthe, agus is féidir leis an suíomh gréasáin titim.
Má tharlaíonn athsheolta in ainneoin bunachar sonraí glan, tá a gcúis i gciseal eile. Cabhraíonn an t-alt Athsheolann an suíomh gréasáin chuig leathanaigh choimhthíocha leis an gcúngú.
Conas a chabhraíonn PHP SOS go nithiúil?
- Cinntímid an bunachar sonraí le suim seiceála agus cuardaímid an easpórtáil ar scripteanna, fearainn choimhthíocha agus cód doiléirithe.
- Seiceálaimid trigeartha, imeachtaí, nósanna imeachta agus úsáideoirí bunachair sonraí atá lasmuigh den CMS.
- Glanaimid fionnachtana faoi chuimsiú bhaint malware, gan sonraí sraitheacha a dhéanamh damáiste dóibh.
- Cuirimid teorainn le cearta úsáideoir an fheidhmchláir agus déanaimid an tseiceáil arís tar éis an ghlantacháin.
Ceisteanna coitianta
An féidir cód mailíseach a bheith sa bhunachar sonraí?
Is féidir. Scríobhann ionsaitheoirí JavaScript isteach i bpostálacha, i dtuairiscí táirgí nó i bhfeidhmchláirín (widgets), athraíonn siad socruithe seoltaí le haghaidh athsheolta nó cruthaíonn siad cuntais riarthóra. Ar MySQL agus MariaDB, is féidir le trigeartha agus imeachtaí sceidealaithe sonraí a athrú freisin. Ní fhaigheann scanadh comhad aon cheann de sin.
Conas a chuardaím an bunachar sonraí gan aon rud a bhriseadh?
Oibrigh ar easpórtáil nó ar chóip agus úsáid fiosrúcháin SELECT amháin. Ina theannta sin is féidir easpórtáil a chuardach mar chomhad téacs le grep. Ní dhéantar athruithe ach nuair atá gach fionnachtain measúnaithe agus cúltaca ann.
Cén fáth nár cheart dom fionnachtana a ghlanadh le cuardach agus ionadú san easpórtáil?
Stórálann go leor CMS socruithe mar shonraí PHP sraitheacha, ina stóráiltear fad gach teaghrán leis. Athraíonn ionadú an fad, ach ní an luach a thugtar dó, agus éiríonn an socrú dothuigthe. Glan tríd an bhfeidhmchlár nó le huirlisí a thuigeann sonraí sraitheacha.
An bhfuil gach script sa bhunachar sonraí amhrasach?
Níl. Stóráiltear cóid rianaithe, léarscáileanna, físeáin nó feidhmchláirín comhrá mar script freisin. Is é an rud is tábhachtaí an bhfuil aithne ag duine éigin san fhoireann ar an iontráil agus ar an spriocsheoladh.