De ce un atribut onclick, onerror sau onload merită revizuire în descriere?
HTML permite event handler attributes precum onclick, onerror sau onload, iar valoarea unui astfel de atribut este tratată ca JavaScript asociat evenimentului. MDN descurajează folosirea acestor atribute și notează că politicile CSP pot bloca JavaScript-ul inline. Într-un câmp destinat descrierii produsului, ele introduc logică de eveniment într-un loc care ar trebui să conțină în principal informație și formatare.
Detectorul caută atributul observat, nu încearcă să execute codul și nu afirmă că handlerul a rulat. Un atribut poate fi reziduu dintr-un snippet, un widget vechi sau o migrare. Prezența sa nu dovedește atac, XSS ori compromiterea magazinului.
Exemple de logică inline atașată elementelor
Exemplele sunt fictive și redau sintaxa la nivel conceptual. Nu sunt instrucțiuni de exploatare și nu arată că un browser sau o temă Shopify a executat fragmentul.
<img onerror="…">[handler asociat erorii de încărcare]Constatarea indică atributul onerror; verifică de unde provine și elimină logica dacă nu este necesară.
<a onclick="…">Detalii</a>[acțiune inline la click]Un link din descriere ar trebui să aibă o destinație și un comportament intenționat; revizuirea separă funcția legitimă de reziduu.
<div onload="…">…</div> într-un snippet migrat[logică atașată markup-ului importat]Verifică dacă snippet-ul mai are suport în tema actuală înainte de remediere.
Ce verifică PROVEN?
Verifică informații atașate elementelor care pot declanșa acțiuni direct din descriere.
De ce contează?
Acțiunile atașate conținutului pot introduce comportament executabil într-un câmp destinat descrierii.
Ce risc operațional creează handler-ele inline?
Atributul amestecă markup-ul descrierii cu logică JavaScript, ceea ce face conținutul mai greu de întreținut și de evaluat. MDN recomandă event listeners separați, iar CSP tratează handler-ele inline ca o formă de JavaScript inline care este blocată implicit de politici restrictive.
Pentru comerciant, obiectivul este să știe unde există astfel de atribute și dacă aparțin unei funcții încă suportate. PROVEN nu promite securitate prin simpla ștergere a unui handler și nu transformă constatarea într-o afirmație că a avut loc un incident.
Ce poate face PROVEN?
PROVEN poate pregăti eliminarea controlată a acestor acțiuni; schimbarea necesită revizuirea ta înainte de aplicare.
Cum tratează PROVEN event handler attributes
Fluxul izolează atributul, funcția aparentă și alternativa înainte de orice eliminare.
- Localizează atributul on*PROVEN arată elementul și atributul care corespund regulii, păstrând valoarea ca dovezi fără executare.
- Verifică funcția intenționatăComerciantul stabilește dacă handlerul provine dintr-un widget, o migrare sau un fragment fără rol actual.
- Elimină logica inline sub revizuireDacă funcția nu este necesară, PROVEN poate pregăti eliminarea atributului; dacă este necesară, soluția trebuie mutată într-o implementare suportată, nu inventată în descriere.
Ce verifici înainte să elimini handlerul?
Confirmă dacă elementul are o interacțiune legitimă și unde ar trebui implementată acea interacțiune în tema sau aplicația responsabilă. Eliminarea atributului poate schimba un comportament vizibil.
Nu deduce intenția din cod și nu presupune că atributul a fost executat. Constatarea singură nu este dovadă de atac, exploatare sau compromis.
Ce nu spune această pagină
- Detectorul observă atribute de eveniment; nu execută codul și nu dovedește că handlerul a rulat.
- Prezența unui on* attribute nu dovedește XSS, atac sau compromiterea magazinului.
- CSP și sanitizarea sunt controale separate care pot bloca ori elimina JavaScript inline.
- O funcție legitimă trebuie reimplementată în locul potrivit, nu pierdută prin ștergere oarbă.
- Exemplele sunt illustrative și nu sunt conținuturi din catalogul tău.
Întrebări frecvente
Ce este un event handler attribute?
Este un atribut HTML precum onclick sau onerror a cărui valoare definește cod asociat unui eveniment. MDN descurajează acest model de JavaScript inline.
CSP poate bloca handler-ele inline?
Da. MDN documentează faptul că politicile CSP restrictive blochează implicit forme precum event handler attributes, dacă nu sunt relaxate explicit.
Înseamnă că am o vulnerabilitate XSS?
Nu automat. Contextul de inserare, sanitizarea și posibilitatea reală de control al datelor sunt necesare pentru o concluzie de securitate.
Poate PROVEN muta automat logica în tema mea?
Nu ca parte a acestei pagini. Detectorul poate pregăti eliminarea controlată; o funcție legitimă de interfață trebuie implementată în componenta sau tema responsabilă.
Surse și context independent
Sursele de mai jos explică platforma sau standardele relevante. Ele oferă context pentru interpretare, dar nu demonstrează singure că magazinul tău are această problemă.
- MDN — Atribute HTML și event handlersMDN explică faptul că event handler content attributes sintetizează funcții JavaScript și descurajează utilizarea lor.
- MDN — Content Security PolicyMDN explică faptul că CSP blochează implicit JavaScript inline, inclusiv handler-ele on*, în configurații restrictive.
- Shopify — Editorul de text îmbogățitShopify documentează sanitizarea HTML-ului din text formatat pentru a preveni probleme și riscuri.