先说我自己的,入库不做字符转换/转义(当然做了其他SQL注入的防范),这样对于管理维护人员直接查看数据库中的记录时要方便点。最终页面输出时再根据需要调用自定义函数进行字符转换/转义。重要就是这个自定义函数需要做那些事,才足够防范XSS攻击?我的思路是:根据应用场景,提供参数指定一些标签不转换/转义,除此之外的所有字符都进行直接使用htmlspecialchars()转换/转义。但是即使指定的安全标签某些属性似乎也存在安全隐患。如何解决这个问题呢?另外是否只要通过了htmlspecialchars()转换/转义,就绝对不存在XSS攻击?期望达到的目标是:尽可能保持原来的字符,但又足够的安全(只考虑XSS安全,不需考虑SQL注入)。这个转换/转义函数如何写呢?function breakXSS($str,$tags=null){
    //期待大牛给个好的思路、代码
    return $str;
}