code wiki / _hdl_build / nx_ad_banner_builder_gate.nx

nx_ad_banner_builder_gate.nx source

↩ module page · 69 lines · 4609 B

1// nx_ad_banner_builder_gate.nx -- GATE for the server-rendered banner builder. Proves: the GET form has the 2// fields and is ZERO-JS; a POST renders a clean generated banner (correct size + animation) with the form 3// repopulated; an injected sponsor stays escaped; empty input yields no banner. Emits the builder page 4// samples to knowledge/staging/ad/ as evidence. Sovereign, no gcc/.sh. license_tier: ORIGINAL 5import "nx_ad_banner_builder.nx" 6import "nx_ad_serve.nx" 7import "nx_syscalls.nx" 8 9func g_p(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 10func g_write(fname: *u8, buf: *u8, n: i64) -> i64 { let fd: i64 = sys_openat_wr(fname, 420); if fd >= 0 { sys_write(fd, buf, n); sys_close(fd) } return 0 } 11 12func main(argc: i64, argv: *i64) -> i64 { 13 g_p("=== nx_ad_banner_builder_gate ===\n" as *u8) 14 let page: *u8 = sys_mmap(65536) 15 var pass: i64 = 0 16 var tot: i64 = 0 17 18 // ---- T1: GET (empty body) -> the form, zero JS, no preview yet. 19 let empty: *u8 = sys_mmap(8); empty[0] = 0 as u8 20 let g1: i64 = abb_page(empty, 0, page) 21 g_write("knowledge/staging/ad/banner_builder.html" as *u8, page, g1) 22 tot = tot + 1; var ok1: i64 = 1 23 if as_contains(page, g1, "name='business'" as *u8) != 1 { ok1 = 0 } 24 if as_contains(page, g1, "leaderboard" as *u8) != 1 { ok1 = 0 } 25 if as_contains(page, g1, "dynamic" as *u8) != 1 { ok1 = 0 } 26 if as_contains(page, g1, "<script" as *u8) != 0 { ok1 = 0 } // builder is ZERO-JS 27 if as_contains(page, g1, "Preview" as *u8) != 0 { ok1 = 0 } // nothing generated yet 28 if ok1 == 1 { pass = pass + 1; g_p("PASS T1 GET form: fields present, zero-JS, no preview\n" as *u8) } else { g_p("FAIL T1\n" as *u8) } 29 30 // ---- T2: POST a submission -> generated banner preview (728x90 dynamic) + repopulated + copy box, zero-JS. 31 let post: *u8 = "business=Acme+Co&headline=Big+sale&body=Up+to+40%25+off&cta=Shop+now&link=https://acme.test/&size=leaderboard+728x90&theme=dark&kind=dynamic+(animated)" as *u8 32 let pn: i64 = as_len(post) 33 let g2: i64 = abb_page(post, pn, page) 34 g_write("knowledge/staging/ad/banner_builder_filled.html" as *u8, page, g2) 35 tot = tot + 1; var ok2: i64 = 1 36 if as_contains(page, g2, "width:728px" as *u8) != 1 { ok2 = 0 } // requested size honored 37 if as_contains(page, g2, "@keyframes" as *u8) != 1 { ok2 = 0 } // dynamic animation present 38 if as_contains(page, g2, "Preview" as *u8) != 1 { ok2 = 0 } // preview rendered 39 if as_contains(page, g2, "<textarea" as *u8) != 1 { ok2 = 0 } // copy-paste HTML box 40 if as_contains(page, g2, "value='Acme Co'" as *u8) != 1 { ok2 = 0 } // form repopulated (decoded) 41 if as_contains(page, g2, "<script" as *u8) != 0 { ok2 = 0 } // STILL zero-JS 42 if ok2 == 1 { pass = pass + 1; g_p("PASS T2 POST: 728x90 dynamic preview + repopulated + copy box, zero-JS\n" as *u8) } else { g_p("FAIL T2\n" as *u8) } 43 44 // ---- T3: abb_render direct -> non-empty for a real form, and EMPTY (0) when no business given. 45 let buf: *u8 = sys_mmap(16384) 46 let r1: i64 = abb_render(post, pn, buf) 47 let noform: *u8 = "headline=x" as *u8 48 let r0: i64 = abb_render(noform, as_len(noform), buf) 49 tot = tot + 1; var ok3: i64 = 1 50 if r1 <= 0 { ok3 = 0 } 51 if r0 != 0 { ok3 = 0 } // no business -> no banner (fail-closed on empty) 52 if ok3 == 1 { pass = pass + 1; g_p("PASS T3 abb_render: generates for a form, returns 0 with no business\n" as *u8) } else { g_p("FAIL T3\n" as *u8) } 53 54 // ---- T4: ESCAPING neg-control -> an injected sponsor never appears raw in the page (escaped in BOTH 55 // the repopulated form value and the generated banner). 56 let inj: *u8 = "business=<script>alert(1)</script>&headline=H&size=rectangle&kind=static" as *u8 57 let g4: i64 = abb_page(inj, as_len(inj), page) 58 tot = tot + 1; var ok4: i64 = 1 59 if as_contains(page, g4, "<script" as *u8) != 0 { ok4 = 0 } // raw injection absent 60 if as_contains(page, g4, "&lt;script" as *u8) != 1 { ok4 = 0 } // present only escaped 61 if ok4 == 1 { pass = pass + 1; g_p("PASS T4 escaping: injected sponsor stays &lt;script (no raw tag)\n" as *u8) } else { g_p("FAIL T4\n" as *u8) } 62 63 g_p("nx_ad_banner_builder_gate pass=" as *u8) 64 let nb: *u8 = sys_mmap(16); let nn: i64 = ab_uitoa(nb, 0, pass); sys_write(1, nb, nn) 65 g_p("/" as *u8); let tb: *u8 = sys_mmap(16); let tn: i64 = ab_uitoa(tb, 0, tot); sys_write(1, tb, tn) 66 if pass == tot { g_p(" verdict=GREEN\n" as *u8); return 0 } 67 g_p(" verdict=RED\n" as *u8) 68 return 1 69}