doxa-maps/plugin-designs/pplr-data-maps
Doxa Maps 05346b1e53 PPLR data maps: escape every value that goes into popup and search-suggestion HTML
The critic fact-check (CRITIC-3) found PPLR's popups interpolating data raw into setHTML():
popupForPG (pins, coverage, rosetta), the country popup in coverage, the local popup builders in
religion, rop-tree and language-families, and the search box's suggestion renderer. That last one
renders place names that come from the Mapbox geocoding API, so it is external data. All of them now
go through escHtml(); the dash placeholder for empty values is unchanged.
Headless proof: a hostile-input test (an <img onerror> name, a <script> country, quotes and
ampersands) 5/5: no live tag or handler survives and the text shows as text. BUNDLE=pplr-data-maps
builds. Plugin-only.
2026-09-26 04:54:41 +00:00
..
scripts PPLR data maps (WIP): move the ten PPLR research views into plugin-designs 2026-09-25 06:33:49 +00:00
src PPLR data maps: escape every value that goes into popup and search-suggestion HTML 2026-09-26 04:54:41 +00:00
index.html PPLR data maps (WIP): move the ten PPLR research views into plugin-designs 2026-09-25 06:33:49 +00:00
index.js PPLR data maps (WIP): move the ten PPLR research views into plugin-designs 2026-09-25 06:33:49 +00:00
pplr-data-maps.meta.json PPLR data maps (WIP): move the ten PPLR research views into plugin-designs 2026-09-25 06:33:49 +00:00
pplr-data-maps.vue PPLR data maps: tab labels and status lines speak the reader's language 2026-09-26 03:34:28 +00:00