ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
最新版的tp默认没有对数据进行过滤 我们需要在config.php配置过滤函数 ``` // 默认全局过滤方法 用逗号分隔多个 'default_filter' => 'htmlspecialchars', ``` 当然只是这个系统的过滤是不够的,htmlspecialchars 不带参数的时候仅适用于 html 标签内容 这是很糟糕的做法,除了 htmlspecialchars,还得有 xml_specialchars,regex_specialchars,database_specialchars 等等,在入口处统一过滤或者转义,是简单粗暴很 low 的做法,它在让你丢失原始数据的同时,并没有真正避开危险。 正确的做法是在输出的时候按照不同的位置进行相应的合适的处理(不仅限于后端) PDO prepare 并不能百分百防止注入。 1\. 要统一好整个网站,web 服务器,数据库的编码。 2\. $pdo->setAttribute(PDO::ATTR\_EMULATE\_PREPARES, false); 要记得设置 3\. 注意二级注入。比如用户把带危险的字符串先存进数据库,如果你想在另外一个 SQL 语句里 concat 或者直接拼接那个带危险的字符串,是可以注入的。 通过  mysql_real_escape_string() 来转义防止攻击数据库 常见的还需要覆盖的有 csrf、cookie 的种种安全问题,session 的种种安全问题,密码安全等 要讲安全,建议先通读 owasp cheatsheet 系列