我一直在开发一个不允许HTML格式化的系统.我目前使用的方法是在HTML实体插入数据库之前对其进行转义.有人告诉我应该将原始文本插入数据库,并在输出时转义HTML实体.

我在这里看到的其他类似问题类似于HTML仍然可以用于格式化的情况,所以我想问一个HTML根本不会被使用的情况.

推荐答案

在插入到数据库之前执行转义时,您还将限制自己.假设您决定不使用HTML作为输出,而使用JSON、明文等.

如果您在数据库中存储了转义的html,则必须首先对存储在数据库中的值进行"取消转义",以便再次将其重新转义为不同的格式.

也看到这个完美的owasp article on xss prevention

Database相关问答推荐

MongoDB根据嵌套文档中的值匹配数组

使用 Npgsql 执行年龄查询并在 .NET 应用程序中返回结果?

[mongodb],如何通过聚合获得具有许多不同字段的文档的最大值?子字段名称相同

数据库设计:文件路径的首选字段长度

多列上的全文索引如何工作?

MongoDB是面向对象的吗?

如何允许多个用户同时连接到我的 H2 数据库?

数据验证是否应该在数据库级别进行?

错误:mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication

将 `tsv` 文件插入 postgresql 数据库

使用 jQuery 动态填写表单值

PHP 和 MySQL Select 单个值

是否有一个 postgres 命令来列出/删除所有materialized视图?

如何将mysql的默认端口从3306更改为3360

有没有一种简单的方法来告诉 alembic 迁移到特定版本?

如何动态更改 Ruby on Rails 中所有模型的 Active Record 数据库?

将查询限制为一条记录会提高性能吗

如何将空值传递给外键字段?

在 UI 中执行业务逻辑的单元测试数据库应用程序

自引用表上的 SQL 递归查询 (Oracle)