預檢 Production URL 格式
修改檔案:script.js
完成後看見:拒絕 example.com、localhost 與非 HTTPS 網址
CHAPTER 28 · PRACTICE WORKSPACE
以自己的 Production URL 與 commit 完成格式預檢,再由教師或同儕人工驗收與展示
TASK STATUS
修改檔案:script.js
完成後看見:拒絕 example.com、localhost 與非 HTTPS 網址
修改檔案:script.js
完成後看見:拒絕空白或過短 commit,並列出待修格式
修改檔案:script.js
完成後看見:以 textContent 與 createElement 產生草稿,明列仍待人工驗收
WORKSPACE
已完成 TASK-02;先核對可見結果,再前往 TASK-03。
FOCUS TASK · TASK-03
比較:使用者輸入要當文字處理,不能直接拼成 HTML;安全 DOM 也要保留展示結構。
現在做:在 Solution 填入有效 URL、abcdef1、含 <img src=x onerror=alert(1)> 的 20 字以上問題描述並勾選手機;送出後檢查 #showcase img 為 0、原始字串仍可見,且展示稿有成果連結與待人工驗收文案。
預期:buildShowcase 以 textContent、createElement 與安全連結產生展示草稿,外來輸入不會變成 HTML 或執行事件。
證據:留下原始問題文字、#showcase img 計數 0、成果連結的 rel=noopener noreferrer、待人工驗收文案與 window.__xss 未設定五項證據。
比較:程式只能產生草稿與列出待驗收項目,真正手機展示與 Production URL 仍需人工確認。
現在做:在 Solution 完成一次格式預檢後,檢查 #status 的「尚待教師或同儕人工驗收」、#showcase a 的外部連結與 rel,並記下工具沒有替你開站、比對 history 或驗證手機的限制。
預期:展示草稿只是格式與內容摘要;Production URL 的可達性、commit history 與手機操作必須由人工完成並留下回饋。
證據:留下 status、外部連結屬性、人工驗收待辦三項 UI 證據,以及一份由驗收者填寫的 URL/commit/手機回饋紀錄。
完成條件:DONE-03:以 textContent 與 createElement 產生草稿,明列仍待人工驗收
只做格式預檢,仍需人工驗收
尚未執行格式預檢
CONTINUE
前往 Solution,依要求完成「安全產生期末展示草稿」。
FINAL HANDOFF
接收:第 27 章只提供 mock queue、offline 保留與 retry/preflight 證據;本章不把 mock 結果當成 Production deploy,也不共用第 27 章的 runtime。
本章交付:自己的 HTTPS Production URL、實際存在於 repo history 的 commit、手機行動網路操作與教師/同儕人工驗收紀錄;格式預檢只負責先排除明顯錯誤。
結業邊界:展示草稿不能取代人工開站、版本比對與手機驗證;任何 token、密碼或私人資料都不可放入展示證據。
回到第 28 章成果證據