Digitális és informatikai

CSV-export képletkezdő szöveggel: az idézőjel önmagában kevés

Egy ügyféltől érkező megjegyzés táblázatkezelőben képletté válhat. A mezőszétválasztás és a képletértelmezés külön kockázat; az export és az újranyitás együtt tesztelendő.

Dajka Gábor3 perc olvasás

Egy webáruházi megjegyzés szöveges adat a rendelési rendszerben. Ugyanez a tartalom egy CSV-export megnyitásakor képletként értelmeződhet, ha a fogadó táblázatkezelő így kezeli a mező elejét. Az export attól még lehet szabályos CSV, hogy a későbbi megnyitás veszélyes vagy félrevezető viselkedést okoz.

A cikk védekező adatkezelési ellenőrzést mutat be. A példák ártalmatlan szövegek és egyszerű összeadások. Valódi ügyféladatot, jelszót vagy hozzáférési kulcsot ne használj exporttesztben, és a figyelmeztetéseket ne kapcsold ki a próba kedvéért.

Két eltérő feldolgozási lépést válassz szét

A CSV olvasója először sorokra és mezőkre bontja az állományt. Ehhez elválasztójelet és idézőjelezési szabályt használ. A táblázatkezelő ezután dönthet arról, hogy egy mező szám, dátum, szöveg vagy képlet.

A =1+1 tartalmú ügyfélmegjegyzésnél az elvárt eredmény az négy karakterből álló szöveg megőrzése. Képletértelmezés esetén a cellában ehelyett a 2 eredmény jelenhet meg. Ilyenkor az eredeti jelentés már megváltozott, pedig az export oszlopai akár tökéletesen a helyükön maradtak.

Az OWASP CSV Injection útmutatója hangsúlyozza a képletkezdő karaktereket és a táblázatkezelők közötti eltéréseket. Arra is figyelmeztet, hogy a mentés és újranyitás egy korábban alkalmazott védelmet megváltoztathat. Ezért nincs minden fogyasztó számára egyformán biztonságos, általános CSV-tisztítás.

Az idézőjelezést a saját céljának megfelelően kezeld

Egy vesszőt tartalmazó „piros, nagy” megjegyzés idézőjelezése arra szolgál, hogy egyetlen mező maradjon. Ettől a mező típusa még nincs feltétlenül szövegként rögzítve a későbbi alkalmazás számára.

A saját exportellenőrzésedben ezért külön teszteld az oszlopszámot és a cellák értelmezését. Egy próbafájlban szerepelhet közönséges szöveg, vesszőt tartalmazó szöveg, idézőjelet tartalmazó szöveg, a fenti ártalmatlan képletkezdet és egy szabályos negatív szám. A várt értéket minden oszlopnál előre rögzítsd.

A negatív mennyiség például visszárus üzleti adat lehet. Egy ellenőrzött számoszlop −12 értékét másként kell kezelni, mint egy szabad szövegként érkező, műveletre hasonlító tartalmat. A mező szerepét az export sémája mondja meg.

Válassz a felhasználáshoz illő átadást

Gépi adatcserénél olyan formátum és séma hasznos, amelyben a szövegmező szöveg marad. A JSON formázóval a dokumentum szerkezete ellenőrizhető, de az üzleti adattípusokat a fogadó rendszernek is be kell tartania.

Táblázatos emberi ellenőrzéshez egy natív munkafüzetben a megbízható exportkód külön szöveges cellatípust írhat. CSV-nél a fogadó alkalmazás dokumentált szöveges importját kell tesztelni. Egy utólagos, minden mező elé tett karakter módosíthatja a valódi adatot, ezért az eredeti gépi exportot és az emberi megtekintésre készített változatot külön érdemes tárolni.

A CSV–JSON átváltó a formátumváltásban segít. Önmagában egy átváltás nem minősül minden későbbi táblázatkezelőre kiterjedő biztonsági auditnak.

A próba az újranyitással zárul

A saját támogatott alkalmazásodban importáld a tesztadatot, ellenőrizd a megjelenő értéket és a cella típusát, majd mentsd és nyisd meg újra. A változat és az importbeállítás kerüljön a tesztnaplóba. Ugyanezt ismételd meg minden ténylegesen támogatott fogadó rendszerrel.

Sikeres tesztnél a megjegyzés tartalma azonos marad, az elválasztójelek nem hoznak létre új oszlopot, és a szöveg nem válik végrehajtandó képletté. A nyers ügyfélmegjegyzést ne írd felül a megtekintési export kedvéért; a két feladat külön adatpéldányon kezelhető.

Gyakori kérdések

Elég dupla idézőjelbe tenni minden mezőt?

A CSV mezőhatárait ettől szabályosan kezelheted, de a táblázatkezelő későbbi típusfelismerése külön folyamat. A tényleges fogyasztóval kell tesztelni.

Minden mínuszjellel kezdődő adat hibás?

Nem. Számoszlopban a negatív érték szabályos lehet. Szabad szövegnél és ellenőrzött numerikus mezőnél eltérő validáció szükséges.

A megnyitáskor kapott figyelmeztetés kikapcsolható a könnyebb használatért?

Az export hibáját ne a védelem kikapcsolásával kezeld. A formátumot, az adattípust és az importfolyamatot kell rendezni.

További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás