用户在表单里输入一些特殊字符如:& (& 符号)," (双引号),' (单引号),< (小于),> (大于)等,这些特殊字符可能会导致XSS攻击。当获取到用户输入后,可以用htmlspecialchars函数去转义,然后存到数据库,以后读出来就可以直接吐给前端去展示了,不会导致XSS。还有一种方案就是获取用户输入后直接存放到数据库,以后读出来的时候用htmlspecialchars转义再吐给前端。究竟哪一种方案比较合理呢?为什么?在网上有看到有人说数据库应该存放用户原始输入。(我用数据库是MYSQL,后端代码用PHP写)。
需要考虑你们的安全策略,如果严格执行安全策略的编码的话,那么无论你怎么操作,只要规定好就行了。但是一旦存在不严格的代码的时候,那么就爆炸了,所以一般采取的都是写入转义,这样子更加安全一些,因为写入方一般少于读取方