Structured Data Pack

Two kinds of file in here. The valid ones test that your importer reads what is actually there, including quoted commas and embedded newlines. The hostile ones test that it gives up cleanly instead of exhausting memory or reading a file off your server.

↓ Download structured-data-pack.zip14 files · 41.2 KB zipped

SHA-256 d2c89d98b02cea51e48b8faaec96e9ae5f5757b515859f4ff16d83e9a16a645d

What is inside

FileFormatSizeExpected result
valid-simple.csvCSV4.3 KBParses. The control.
quoting-nightmare.csvCSV407 bytesQuoted fields containing commas and newlines kept intact.
bom-and-semicolons.csvCSV124 bytesBOM stripped, semicolon delimiter detected.
ragged-rows.csvCSV123 bytesRows with the wrong column count rejected or padded deliberately.
formula-injection.csvCSV357 bytesLeading = + - @ escaped on export to a spreadsheet.
valid-small.jsonJSON382 bytesEvery scalar type, nesting, Unicode and escapes. Parses.
malformed-trailing-comma.jsonJSON24 bytesRejected. It is not valid JSON, whatever your parser thinks.
precision-loss.jsonJSON319 bytesIntegers above 2^53 preserved, or the loss handled knowingly.
deeply-nested-100000.jsonJSON195 KBRejected at a depth limit, not by a stack overflow.
ndjson-10000-lines.ndjsonNDJSON654 KBStreamed line by line rather than parsed whole.
valid.xmlXML395 bytesParses. The control.
billion-laughs.xmlXML794 bytesRejected: entity expansion disabled.
xxe-file-disclosure.xmlXML141 bytesParsed with external entity resolution off.
norway-problem.yamlYAML161 bytesThe country code NO stays a string and does not become false.
Also in the archive: a README.md repeating this table with full digests, a manifest.json for scripting, and a SHA256SUMS you can check with sha256sum -c. Every file is generated from source, carries no third-party copyright, and is free to redistribute.

Questions

What is the YAML Norway problem?

In YAML 1.1 the unquoted value NO parses as the boolean false, so a list of country codes silently turns Norway into false. The file in this pack reproduces it along with the other implicit-typing traps.

What is CSV formula injection?

A cell beginning with =, + , - or @ is interpreted as a formula when the CSV is opened in Excel or Sheets, which can run on the victim machine. The file in this pack carries the standard payloads so you can prove your exporter escapes them.

Other packs

Upload Torture Test Pack · Filename Compatibility Pack · Encoding and Unicode Pack · Archive and ZIP Security Pack · Document Parser Pack · Image Pipeline Pack · Email Parser Pack