核心结论
拖拽与跨文档通信都属于跨信任边界的数据传递。稳定且安全的实现必须显式规定发送者、接收者、数据结构、协议版本、允许动作、权限条件和失败处理。DataTransfer 与 postMessage() 只是运输通道,不会自动证明数据可信;来自其他窗口、嵌入文档、拖拽源或本地文件入口的数据,都要先验证来源和内容,再进入业务逻辑。
底层机制
原生拖拽通常经历 dragstart、dragenter、dragover、dragleave、drop 和 dragend。拖拽源可在 dragstart 中通过 DataTransfer 写入有限数据,并用 `effectAllo