安全默认设计
多数 CMS 的安全事故来自同一处:把用户输入拼进 SQL 与模板。NaichaCMS 的做法是从结构上堵死。
四条设计约束
- 模板层没有 SQL 能力——编译器只认识标签,标签只调用数据层,数据层只用占位符绑定。模板作者想注入也没有语法可用。
- 输出默认转义——除显式声明
html="1"。 - 上传白名单 + 真实图片校验 + 随机文件名——改扩展名的脚本传不上来。
- 登录失败限流、全表单 CSRF、生产环境不外泄堆栈。
此外,<script> 与 <style> 内的花括号不会被引擎当成变量解析,避免模板里的 JS/CSS 被误伤。